示例#1
0
    private void SetHeadSpotLight(Light light, HeadLightState state)
    {
        if (state == HeadLightState.Off)
        {
            light.enabled   = false;
            light.intensity = 0.0f;
        }
        else
        {
            light.enabled = true;

            var t = light.transform;
            if (state == HeadLightState.Low)
            {
                light.enabled      = true;
                light.intensity    = 0.9f;
                light.range        = 40.0f;
                light.spotAngle    = 30.0f;
                t.localEulerAngles = new Vector3(10.0f, t.localEulerAngles.y, t.localEulerAngles.z);
            }
            else if (state == HeadLightState.High)
            {
                light.enabled      = true;
                light.intensity    = 3.0f;
                light.range        = 100.0f;
                light.spotAngle    = 70.0f;
                t.localEulerAngles = new Vector3(0.0f, t.localEulerAngles.y, t.localEulerAngles.z);
            }
        }
    }
示例#2
0
        /// <summary>
        /// Turn off or turn on Rovio head light.
        /// </summary>
        /// <param name="Value">0 - Off, 1 - On</param>
        /// <returns></returns>
        public string SetHeadLight(HeadLightState state)
        {
            RovioResponse response = MovementControl(Commands.TestCommand,
                                                     new RequestItem("LIGHT", (int)state));

            return("");
        }
示例#3
0
    private void SetHeadLightMat(Renderer rend, HeadLightState state)
    {
        if (state == HeadLightState.Off)
        {
            foreach (var mat in rend.materials)
            {
                mat.DisableKeyword("_EMISSION");
                mat.SetColor("_EmissionColor", Color.black);
            }
        }
        else
        {
            foreach (var mat in rend.materials)
            {
                mat.EnableKeyword("_EMISSION");
            }

            if (state == HeadLightState.Low)
            {
                foreach (var mat in rend.materials)
                {
                    mat.SetColor("_EmissionColor", headBeamColor * lowBeamIntensity);
                }
            }
            else if (state == HeadLightState.High)
            {
                foreach (var mat in rend.materials)
                {
                    mat.SetColor("_EmissionColor", headBeamColor * highBeamIntensity);
                }
            }
        }
    }
示例#4
0
 public void OnFogClear()
 {
     if (headlightState != HeadLightState.Off)
     {
         SetHeadLights(HeadLightState.Off);
         headlightState = HeadLightState.Off;
     }
 }
示例#5
0
 public void OnFog()
 {
     if (headlightState != HeadLightState.High)
     {
         SetHeadLights(HeadLightState.High);
         headlightState = HeadLightState.High;
     }
 }
示例#6
0
 public void OnDay()
 {
     if (headlightState != HeadLightState.Off)
     {
         SetHeadLights(HeadLightState.Off);
         headlightState = HeadLightState.Off;
     }
 }
    void SetHeadLights(HeadLightState state)
    {
        headLightRends.ForEach(r => SetHeadLightMat(r, state));
        headSpotLights.ForEach(l => SetHeadSpotLight(l, state));

        // set running lights
        SetRunningLights(state);
    }
示例#8
0
        public void SetHeadLight(HeadLightState state)
        {
            this.HeadLight = state;

            RovioAPI           api      = rovio.API;
            MovementController movement = api.Movement;

            movement.SetHeadLight(this.HeadLight);
        }
示例#9
0
 public void SetCarOutOfRenderRange()
 {
     inRenderRange = false;
     foreach (var r in renderers)
     {
         r.enabled = false;
     }
     SetHeadLights(HeadLightState.Off);
     headlightState = HeadLightState.Off;
 }
示例#10
0
    public void OnNight()
    {
        if (distToNearestPlayer > TrafPerfManager.carRendDistanceThreshold)
        {
            return;
        }

        if (headlightState != HeadLightState.Low)
        {
            SetHeadLights(HeadLightState.Low);
            headlightState = HeadLightState.Low;
        }
    }
 private void SetRunningLightMat(Renderer rend, HeadLightState state)
 {
     if (state == HeadLightState.Off)
     {
         foreach (var mat in rend.materials)
         {
             mat.DisableKeyword("_EMISSION");
             mat.SetColor("_EmissionColor", Color.black);
         }
     }
     else
     {
         foreach (var mat in rend.materials)
         {
             mat.EnableKeyword("_EMISSION");
             mat.SetColor("_EmissionColor", runningLightColor);
         }
     }
 }
示例#12
0
 void SetHeadLights(HeadLightState state)
 {
     headLightRends.ForEach(r => SetHeadLightMat(r, state));
     headSpotLights.ForEach(l => SetHeadSpotLight(l, state));
 }
示例#13
0
 public SetHeadLight(HeadLightState state)
 {
     this.state = state;
 }
示例#14
0
        public void SetHeadLight(HeadLightState state)
        {
            this.HeadLight = state;

            RovioAPI api = rovio.API;
            MovementController movement = api.Movement;
            movement.SetHeadLight(this.HeadLight);
        }
 private void SetRunningLights(HeadLightState state)
 {
     brakeLightRenderers?.ForEach(r => SetRunningLightMat(r, state));
     tailLightRenderers?.ForEach(r => SetRunningLightMat(r, state));
 }
示例#16
0
 /// <summary>
 /// Turn off or turn on Rovio head light.
 /// </summary>
 /// <param name="Value">0 - Off, 1 - On</param>
 /// <returns></returns>
 public string SetHeadLight(HeadLightState state)
 {
     RovioResponse response = MovementControl(Commands.TestCommand,
         new RequestItem("LIGHT", (int)state));
     return "";
 }
示例#17
0
 public SetHeadLight(HeadLightState state)
 {
     this.state = state;
 }