Ejemplo n.º 1
0
    private void CreateTrainsByData()
    {
        DebugLog("CreateTrainsByData() start.");

        DestroyTrainDisplayObjects();


        foreach (TrainData td in m_TrainData.Values)
        {
            bool skip = false;

            DebugLog("m_DisplayEditorMode=" + m_DisplayEditorMode.ToString());
            DebugLog("m_RecreateTrainKeyword=" + m_RecreateTrainKeyword);

            // 圖示
            string textureName = "";
            if (true == m_TrainTypeTextureMap.ContainsKey(td.TypeStr))
            {
                textureName = m_TrainTypeTextureMap[td.TypeStr];
            }

            Texture2D trainTexture = (Texture2D)Resources.Load(textureName,
                                                               typeof(Texture2D));
            if (null == trainTexture)
            {
                Debug.LogError("CreateTrainsByData() trainTexture load failed=" + textureName);
                return;
            }

            switch (m_DisplayEditorMode)
            {
            case DisplayEditorMode.NearStation:
                int stationid_i = 0;
                int stationid_j = 0;

                if (true == FindTrainBetween(td,
                                             ref stationid_i,
                                             ref stationid_j))
                {
                    Dictionary <int, StationData> stationDataVec = m_Stations;

                    DebugLog("i ].DisplayName" + stationDataVec[stationid_i].DisplayName);
                    DebugLog("j ].DisplayName" + stationDataVec[stationid_j].DisplayName);

                    if (m_RecreateTrainKeyword != stationDataVec[stationid_i].DisplayName &&
                        m_RecreateTrainKeyword != stationDataVec[stationid_j].DisplayName)
                    {
                        skip = true;
                    }
                }
                break;

            case DisplayEditorMode.SpecifiedTrain:
                if (td.DisplayName != m_RecreateTrainKeyword)
                {
                    skip = true;
                }
                break;

            case DisplayEditorMode.AllTrains:
                // do nothing , all pass.
                break;

            case DisplayEditorMode.NoTrain:
                return;                 // do nothing at all
            }
            if (true == skip)
            {
                continue;
            }


            string objName = "Train_" + td.DisplayName + "(" + td.ID + ")";
            DebugLog("CreateTrainsByData() ." + td.ID);
            GameObject trainObj = new GameObject(objName);

            float trainSize = 32.0f;

            GUITexture guiTexture = trainObj.AddComponent <GUITexture>();
            if (null != guiTexture)
            {
                trainObj.transform.position   = new Vector3(0, 0, m_TrainLayerZShift);
                trainObj.transform.localScale = new Vector3(0, 0, 1);
                guiTexture.texture            = trainTexture;
                guiTexture.pixelInset         = new Rect(-1 * trainSize / 2,
                                                         -1 * trainSize / 2,
                                                         trainSize,
                                                         trainSize);
            }

            GameObject textObj = new GameObject(objName + "_Text");
            GUIText    guiText = textObj.AddComponent <GUIText>();
            if (null != guiText)
            {
                guiText.fontSize       = 24;
                guiText.material.color = Color.white;
                guiText.text           = td.DisplayName;
                guiText.pixelOffset    = new Vector2(
                    1 * trainSize / 2,
                    0);
            }
            textObj.transform.parent        = trainObj.transform;
            textObj.transform.localPosition = new Vector3(0, 0, m_TrainLayerZShift + 1);


            TrainDisplay tDisplay = new TrainDisplay();
            tDisplay.ID  = td.ID;
            tDisplay.Obj = trainObj;

            m_TrainDisplay.Add(tDisplay.ID, tDisplay);
        }

        DebugLog("CreateTrainsByData() ended.");
    }
Ejemplo n.º 2
0
    private void CreateTrainsByData()
    {
        Debug.Log( "CreateTrainsByData() start." ) ;

        DestroyTrainDisplayObjects() ;

        Object prefab = Resources.Load ("TrainPrefab");
        if (null == prefab)
        {
            Debug.LogError( "CreateTrainsByData() CubePrefab load failed=" ) ;
            return ;
        }
        Object textMeshPrefab = Resources.Load ("TextMeshPrefab");
        if (null == textMeshPrefab)
        {
            Debug.LogError( "CreateTrainsByData() textMeshPrefab load failed" ) ;
            return ;
        }

        if( null != this.pCameraControl &&
            m_DisplayEditorMode != DisplayEditorMode.SpecifiedTrain )
        {
            this.pCameraControl.trackingObject = null ;
        }

        foreach( TrainData td in m_TrainData.Values )
        {
            bool skip = false ;

            Debug.Log( "m_DisplayEditorMode=" + m_DisplayEditorMode.ToString() ) ;
            Debug.Log( "m_RecreateTrainKeyword=" + m_RecreateTrainKeyword ) ;

            Dictionary<int , StationData> stationDataVec = m_Stations ;
            switch( m_DisplayEditorMode )
            {
            case DisplayEditorMode.NearStation :

                int stationid_i = 0 ;
                int stationid_j = 0 ;

                if( true == FindTrainBetween( td ,
                                             ref stationid_i ,
                                             ref stationid_j ) )
                {

                    // Debug.Log( "i ].DisplayName" + stationDataVec[ stationid_i ].DisplayName ) ;
                    // Debug.Log( "j ].DisplayName" + stationDataVec[ stationid_j ].DisplayName ) ;
                    if( m_RecreateTrainKeyword != stationDataVec[ stationid_i ].DisplayName &&
                        m_RecreateTrainKeyword != stationDataVec[ stationid_j ].DisplayName )
                    {
                        skip = true ;
                    }
                }
                break ;

            case DisplayEditorMode.SpecifiedTrain :
                if( td.DisplayName != m_RecreateTrainKeyword )
                {
                    skip = true;
                }
                break ;

            case DisplayEditorMode.AllTrains :
                // do nothing , all pass.
                break ;

            case DisplayEditorMode.NoTrain :
                return ;// do nothing at all

            }

            if( true == skip )
                continue ;

            // 圖示
            string textureName = "" ;
            if( true == m_TrainTypeTextureMap.ContainsKey( td.TypeStr ) )
            {
                textureName = m_TrainTypeTextureMap[ td.TypeStr ] ;
            }

            Texture2D trainTexture = (Texture2D)Resources.Load( textureName ,
                                                               typeof(Texture2D) ) ;
            if( null == trainTexture )
            {
                Debug.LogError( "CreateTrainsByData() trainTexture load failed=" + textureName ) ;
                continue ;
            }

            string objName = "Train_" + td.DisplayName + "(" + td.ID + ")" ;
            Debug.Log( "CreateTrainsByData() ." + objName ) ;
            GameObject trainObj = (GameObject)GameObject.Instantiate( prefab );
            trainObj.name = objName ;

            Renderer renderer = trainObj.GetComponent<Renderer>() ;
            if( null != renderer )
            {
                trainObj.transform.position = new Vector3( 0 , 0 , m_TrainLayerZShift ) ;
                renderer.material = new Material (Shader.Find(" Diffuse"));
                renderer.material.mainTexture = trainTexture ;
            }

            GameObject textObj = (GameObject) GameObject.Instantiate( textMeshPrefab );
            textObj.name = objName + "_Text" ;
            TextMesh textMesh = textObj.GetComponent<TextMesh>() ;
            if( null != textMesh )
            {
                textMesh.text = td.DisplayName ;

            }
            textObj.transform.parent = trainObj.transform ;
            textObj.transform.localPosition = Vector3.zero ;
            textObj.transform.localScale = new Vector3( -0.5f , -0.5f , 1 ) ;

            TrainDisplay tDisplay = new TrainDisplay() ;
            tDisplay.ID = td.ID ;
            tDisplay.Obj = trainObj ;

            m_TrainDisplay.Add( tDisplay.ID , tDisplay ) ;

            if( null != this.pCameraControl &&
                m_DisplayEditorMode == DisplayEditorMode.SpecifiedTrain )
            {
                Debug.Log( "td.ID " ) ;
                this.pCameraControl.trackingObject =
                    tDisplay.Obj ;
            }

        }

        Debug.Log( "CreateTrainsByData() ended." ) ;
    }
Ejemplo n.º 3
0
    private void CreateTrainsByData()
    {
        DebugLog( "CreateTrainsByData() start." ) ;

        DestroyTrainDisplayObjects() ;

        foreach( TrainData td in m_TrainData.Values )
        {
            bool skip = false ;

            DebugLog( "m_DisplayEditorMode=" + m_DisplayEditorMode.ToString() ) ;
            DebugLog( "m_RecreateTrainKeyword=" + m_RecreateTrainKeyword ) ;

            // 圖示
            string textureName = "" ;
            if( true == m_TrainTypeTextureMap.ContainsKey( td.TypeStr ) )
            {
                textureName = m_TrainTypeTextureMap[ td.TypeStr ] ;
            }

            Texture2D trainTexture = (Texture2D)Resources.Load( textureName ,
                                                               typeof(Texture2D) ) ;
            if( null == trainTexture )
            {
                Debug.LogError( "CreateTrainsByData() trainTexture load failed=" + textureName ) ;
                return ;
            }

            switch( m_DisplayEditorMode )
            {
            case DisplayEditorMode.NearStation :
                int stationid_i = 0 ;
                int stationid_j = 0 ;

                if( true == FindTrainBetween( td ,
                                              ref stationid_i ,
                                              ref stationid_j ) )
                {

                    Dictionary<int , StationData> stationDataVec = m_Stations ;

                    DebugLog( "i ].DisplayName" + stationDataVec[ stationid_i ].DisplayName ) ;
                    DebugLog( "j ].DisplayName" + stationDataVec[ stationid_j ].DisplayName ) ;

                    if( m_RecreateTrainKeyword != stationDataVec[ stationid_i ].DisplayName &&
                        m_RecreateTrainKeyword != stationDataVec[ stationid_j ].DisplayName )
                    {
                        skip = true ;
                    }
                }
                break ;
            case DisplayEditorMode.SpecifiedTrain :
                if( td.DisplayName != m_RecreateTrainKeyword )
                    skip = true;
                break ;
            case DisplayEditorMode.AllTrains :
                // do nothing , all pass.
                break ;
            case DisplayEditorMode.NoTrain :
                return ;// do nothing at all

            }
            if( true == skip )
                continue ;

            string objName = "Train_" + td.DisplayName + "(" + td.ID + ")" ;
            DebugLog( "CreateTrainsByData() ." + td.ID ) ;
            GameObject trainObj = new GameObject( objName ) ;

            float trainSize = 32.0f ;

            GUITexture guiTexture = trainObj.AddComponent<GUITexture>() ;
            if( null != guiTexture )
            {
                trainObj.transform.position = new Vector3( 0 , 0 , m_TrainLayerZShift ) ;
                trainObj.transform.localScale = new Vector3( 0 , 0 , 1 ) ;
                guiTexture.texture = trainTexture ;
                guiTexture.pixelInset = new Rect( -1 * trainSize / 2 ,
                                                 -1 * trainSize / 2 ,
                                                 trainSize ,
                                                 trainSize ) ;
            }

            GameObject textObj = new GameObject( objName + "_Text"  ) ;
            GUIText guiText = textObj.AddComponent<GUIText>() ;
            if( null != guiText )
            {
                guiText.fontSize = 24 ;
                guiText.material.color = Color.white ;
                guiText.text = td.DisplayName ;
                guiText.pixelOffset = new Vector2 (
                    1 * trainSize / 2 ,
                    0 ) ;
            }
            textObj.transform.parent = trainObj.transform ;
            textObj.transform.localPosition = new Vector3( 0 , 0 , m_TrainLayerZShift + 1 ) ;

            TrainDisplay tDisplay = new TrainDisplay() ;
            tDisplay.ID = td.ID ;
            tDisplay.Obj = trainObj ;

            m_TrainDisplay.Add( tDisplay.ID , tDisplay ) ;
        }

        DebugLog( "CreateTrainsByData() ended." ) ;
    }
Ejemplo n.º 4
0
    private void CreateTrainsByData()
    {
        Debug.Log("CreateTrainsByData() start.");

        DestroyTrainDisplayObjects();

        Object prefab = Resources.Load("TrainPrefab");

        if (null == prefab)
        {
            Debug.LogError("CreateTrainsByData() CubePrefab load failed=");
            return;
        }
        Object textMeshPrefab = Resources.Load("TextMeshPrefab");

        if (null == textMeshPrefab)
        {
            Debug.LogError("CreateTrainsByData() textMeshPrefab load failed");
            return;
        }

        if (null != this.pCameraControl &&
            m_DisplayEditorMode != DisplayEditorMode.SpecifiedTrain)
        {
            this.pCameraControl.trackingObject = null;
        }


        foreach (TrainData td in m_TrainData.Values)
        {
            bool skip = false;

            Debug.Log("m_DisplayEditorMode=" + m_DisplayEditorMode.ToString());
            Debug.Log("m_RecreateTrainKeyword=" + m_RecreateTrainKeyword);



            Dictionary <int, StationData> stationDataVec = m_Stations;
            switch (m_DisplayEditorMode)
            {
            case DisplayEditorMode.NearStation:

                int stationid_i = 0;
                int stationid_j = 0;

                if (true == FindTrainBetween(td,
                                             ref stationid_i,
                                             ref stationid_j))
                {
                    // Debug.Log( "i ].DisplayName" + stationDataVec[ stationid_i ].DisplayName ) ;
                    // Debug.Log( "j ].DisplayName" + stationDataVec[ stationid_j ].DisplayName ) ;
                    if (m_RecreateTrainKeyword != stationDataVec[stationid_i].DisplayName &&
                        m_RecreateTrainKeyword != stationDataVec[stationid_j].DisplayName)
                    {
                        skip = true;
                    }
                }
                break;

            case DisplayEditorMode.SpecifiedTrain:
                if (td.DisplayName != m_RecreateTrainKeyword)
                {
                    skip = true;
                }
                break;

            case DisplayEditorMode.AllTrains:
                // do nothing , all pass.
                break;

            case DisplayEditorMode.NoTrain:
                return;                 // do nothing at all
            }

            if (true == skip)
            {
                continue;
            }

            // 圖示
            string textureName = "";
            if (true == m_TrainTypeTextureMap.ContainsKey(td.TypeStr))
            {
                textureName = m_TrainTypeTextureMap[td.TypeStr];
            }

            Texture2D trainTexture = (Texture2D)Resources.Load(textureName,
                                                               typeof(Texture2D));
            if (null == trainTexture)
            {
                Debug.LogError("CreateTrainsByData() trainTexture load failed=" + textureName);
                continue;
            }

            string objName = "Train_" + td.DisplayName + "(" + td.ID + ")";
            Debug.Log("CreateTrainsByData() ." + objName);
            GameObject trainObj = (GameObject)GameObject.Instantiate(prefab);
            trainObj.name = objName;

            Renderer renderer = trainObj.GetComponent <Renderer>();
            if (null != renderer)
            {
                trainObj.transform.position   = new Vector3(0, 0, m_TrainLayerZShift);
                renderer.material             = new Material(Shader.Find(" Diffuse"));
                renderer.material.mainTexture = trainTexture;
            }

            GameObject textObj = (GameObject)GameObject.Instantiate(textMeshPrefab);
            textObj.name = objName + "_Text";
            TextMesh textMesh = textObj.GetComponent <TextMesh>();
            if (null != textMesh)
            {
                textMesh.text = td.DisplayName;
            }
            textObj.transform.parent        = trainObj.transform;
            textObj.transform.localPosition = Vector3.zero;
            textObj.transform.localScale    = new Vector3(-0.5f, -0.5f, 1);

            TrainDisplay tDisplay = new TrainDisplay();
            tDisplay.ID  = td.ID;
            tDisplay.Obj = trainObj;


            m_TrainDisplay.Add(tDisplay.ID, tDisplay);

            if (null != this.pCameraControl &&
                m_DisplayEditorMode == DisplayEditorMode.SpecifiedTrain)
            {
                Debug.Log("td.ID ");
                this.pCameraControl.trackingObject =
                    tDisplay.Obj;
            }
        }

        Debug.Log("CreateTrainsByData() ended.");
    }