Esempio n. 1
0
    public bool CheckLights(GameObject gameObject)
    {
        foreach (CLight cl in clights)
        {
            if (!cl.isEnabled())
            {
                continue;
            }
            Vector3 vec_to_light  = (Vector3)gameObject.transform.position - (Vector3)cl.gameObject.transform.position;
            float   dist_to_light = cl.gameObject.transform.position.Distance(gameObject.transform.position);

            if (cl.mLightType == CLight.LIGHTTYPE.POINT)
            {
                //point light check
                if (dist_to_light < cl.mRange * 0.99f)
                {
                    return(true);
                }
            }
            if (cl.mLightType == CLight.LIGHTTYPE.SPOTLIGHT)
            {
                if (dist_to_light < cl.mRange)
                {
                    float angtol =
                        MMath.GetAngleBetweenVectors(-(Vector3)cl.gameObject.transform.GetUpVector(), vec_to_light);
                    angtol = MathHelper.ToDegrees(angtol);
                    if (angtol < (cl.mOuterAngle) * 1.1f)
                    {
                        return(true);
                    }
                }
            }
        }

        return(false);
    }