Beispiel #1
0
        /// <summary>
        /// 存储从交叉口roadNode进入路段的车辆,因为时间超前一个时间步长,
        /// 需要放入队列中防止一个元胞先更新到路段,然后在路段内又更新一次更新两次
        /// </summary>
        //private Queue<Cell> queWaitedCell = new Queue<Cell>();

        /// <summary>
        /// 修改信号灯组合
        /// </summary>
        /// <param name="sl">新的信号灯</param>
        /// <param name="lt">要修改的车道类型</param>
        public void ModifySignalGroup(SignalLight sl, LaneType lt)
        {
            foreach (Lane rl in this.Lanes)
            {
                if (rl.laneType == lt)
                {
                    rl.SignalLight = sl;
                }
            }
        }
Beispiel #2
0
        private void DuringSceneGUI(SceneView sv)
        {
            SignalLight t        = target as SignalLight;
            var         position = t.transform.position;
            var         rotation = t.transform.rotation;

            Handles.TransformHandle(ref position, ref rotation);
            t.transform.position = position;
            t.transform.rotation = rotation;
            Undo.RecordObject(t.transform, "SignalLight");
        }
Beispiel #3
0
        public void SetSignalMeshData()
        {
            var signalLights = new List <SignalLight>();

            signalLights.AddRange(FindObjectsOfType <SignalLight>());
            foreach (var light in signalLights)
            {
                if (Vector3.Distance(transform.position, light.transform.position) < 0.1f)
                {
                    CurrentSignalLight = light;
                    break;
                }
            }
        }
Beispiel #4
0
    // Use this for initialization
    void Start()
    {
        StartCoroutine(Example());
        sr = south[0].GetComponent <SignalLight>();
        sf = south[1].GetComponent <SignalLight>();
        sl = south[2].GetComponent <SignalLight>();

        nr = north[0].GetComponent <SignalLight>();
        nf = north[1].GetComponent <SignalLight>();
        nl = north[2].GetComponent <SignalLight>();

        snCrossMainS = southCross[0].GetComponent <SignalLight>();
        snCrossMainN = southCross[1].GetComponent <SignalLight>();
        snCrossSubL  = southCrossSub[0].GetComponent <SignalLight>();
        snCrossSubR  = southCrossSub[1].GetComponent <SignalLight>();

        wr = west[0].GetComponent <SignalLight>();
        wf = west[1].GetComponent <SignalLight>();
        wl = west[2].GetComponent <SignalLight>();

        er = east[0].GetComponent <SignalLight>();
        ef = east[1].GetComponent <SignalLight>();
        el = east[2].GetComponent <SignalLight>();

        srD = southD[0].GetComponent <SignalLight>();
        sfD = southD[1].GetComponent <SignalLight>();
        slD = southD[2].GetComponent <SignalLight>();

        nrD = northD[0].GetComponent <SignalLight>();
        nfD = northD[1].GetComponent <SignalLight>();
        nlD = northD[2].GetComponent <SignalLight>();

        wrD = westD[0].GetComponent <SignalLight>();
        wfD = westD[1].GetComponent <SignalLight>();
        wlD = westD[2].GetComponent <SignalLight>();

        erD = eastD[0].GetComponent <SignalLight>();
        efD = eastD[1].GetComponent <SignalLight>();
        elD = eastD[2].GetComponent <SignalLight>();
    }