ChangeLightRight() public method

public ChangeLightRight ( ) : void
return void
コード例 #1
0
        private bool RightForwardLSegmentLightMode(int segmentId, Vector3 screenPos, float lightWidth, float pedestrianWidth,
            float zoom, float lightHeight, bool hasForwardSegment, bool hasLeftSegment, ManualSegmentLight segmentDict,
            bool hasRightSegment, bool hoveredSegment)
        {
            SetAlpha(segmentId, 3);

            var myRect4 = new Rect(screenPos.x - lightWidth/2 - lightWidth*2 - pedestrianWidth + 5f*zoom,
                screenPos.y - lightHeight/2, lightWidth, lightHeight);

            if (hasForwardSegment && hasLeftSegment)
            {
                switch (segmentDict.LightLeft)
                {
                    case RoadBaseAI.TrafficLightState.Green:
                        GUI.DrawTexture(myRect4, TrafficLightToolTextureResources.GreenLightForwardLeftTexture2D);
                        break;
                    case RoadBaseAI.TrafficLightState.Red:
                        GUI.DrawTexture(myRect4, TrafficLightToolTextureResources.RedLightForwardLeftTexture2D);
                        break;
                }
            }
            else if (!hasLeftSegment)
            {
                if (!hasRightSegment)
                {
                    myRect4 = new Rect(screenPos.x - lightWidth/2 - lightWidth - pedestrianWidth + 5f*zoom,
                        screenPos.y - lightHeight/2, lightWidth, lightHeight);
                }

                switch (segmentDict.LightMain)
                {
                    case RoadBaseAI.TrafficLightState.Green:
                        GUI.DrawTexture(myRect4, TrafficLightToolTextureResources.GreenLightStraightTexture2D);
                        break;
                    case RoadBaseAI.TrafficLightState.Red:
                        GUI.DrawTexture(myRect4, TrafficLightToolTextureResources.RedLightStraightTexture2D);
                        break;
                }
            }
            else
            {
                if (!hasRightSegment)
                {
                    myRect4 = new Rect(screenPos.x - lightWidth/2 - lightWidth - pedestrianWidth + 5f*zoom,
                        screenPos.y - lightHeight/2, lightWidth, lightHeight);
                }

                switch (segmentDict.LightMain)
                {
                    case RoadBaseAI.TrafficLightState.Green:
                        GUI.DrawTexture(myRect4, TrafficLightToolTextureResources.GreenLightLeftTexture2D);
                        break;
                    case RoadBaseAI.TrafficLightState.Red:
                        GUI.DrawTexture(myRect4, TrafficLightToolTextureResources.RedLightLeftTexture2D);
                        break;
                }
            }

            if (myRect4.Contains(Event.current.mousePosition))
            {
                _hoveredButton[0] = segmentId;
                _hoveredButton[1] = 3;
                hoveredSegment = true;

                if (Input.GetMouseButtonDown(0) && !_uiClickedSegment)
                {
                    _uiClickedSegment = true;
                    segmentDict.ChangeLightMain();
                }
            }

            var guiColor = GUI.color;
            // right arrow light
            if (hasRightSegment)
                guiColor.a = _hoveredButton[0] == segmentId && _hoveredButton[1] == 4 ? 0.92f : 0.45f;

            GUI.color = guiColor;

            var myRect5 =
                new Rect(screenPos.x - lightWidth/2 - lightWidth - pedestrianWidth + 5f*zoom,
                    screenPos.y - lightHeight/2, lightWidth, lightHeight);

            switch (segmentDict.LightRight)
            {
                case RoadBaseAI.TrafficLightState.Green:
                    GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.GreenLightRightTexture2D);
                    break;
                case RoadBaseAI.TrafficLightState.Red:
                    GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.RedLightRightTexture2D);
                    break;
            }

            if (!myRect5.Contains(Event.current.mousePosition))
                return hoveredSegment;

            _hoveredButton[0] = segmentId;
            _hoveredButton[1] = 4;

            if (!Input.GetMouseButtonDown(0) || _uiClickedSegment)
                return true;
            _uiClickedSegment = true;
            segmentDict.ChangeLightRight();
            return true;
        }
コード例 #2
0
        private bool RightArrowLightMode(int segmentId, Vector3 screenPos, float lightWidth,
            float pedestrianWidth, float zoom, float lightHeight, ManualSegmentLight segmentDict, bool hoveredSegment)
        {
            SetAlpha(segmentId, 5);

            var myRect5 =
                new Rect(screenPos.x - lightWidth/2 - lightWidth - pedestrianWidth + 5f*zoom,
                    screenPos.y - lightHeight/2, lightWidth, lightHeight);

            switch (segmentDict.LightRight)
            {
                case RoadBaseAI.TrafficLightState.Green:
                    GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.GreenLightRightTexture2D);
                    break;
                case RoadBaseAI.TrafficLightState.Red:
                    GUI.DrawTexture(myRect5, TrafficLightToolTextureResources.RedLightRightTexture2D);
                    break;
            }

            if (!myRect5.Contains(Event.current.mousePosition))
                return hoveredSegment;

            _hoveredButton[0] = segmentId;
            _hoveredButton[1] = 5;

            if (!Input.GetMouseButtonDown(0) || _uiClickedSegment)
                return true;

            _uiClickedSegment = true;
            segmentDict.ChangeLightRight();
            return true;
        }