示例#1
0
        public void PositionTracks()
        {
            foreach (var tTrackType in mTrackPlaceData)
            {
                if (CurrentPFTracks.ContainsKey(tTrackType))
                {
                    CTrack tTrack = GameObject.Instantiate <CTrack>(CurrentPFTracks[tTrackType], mTrackInstancePosition, Quaternion.identity);
                    tTrack.transform.SetParent(mParent);
                    mTrackInstancePosition += Vector3.forward * CurrentPFTracks[tTrackType].TrackLength;


                    tTrack.DisableTiles();
                    tTrack.gameObject.name = string.Format("[{0}] {1}", mInstTrackIndex, tTrack.gameObject.name);

                    foreach (var tile in tTrack.InstTileList)
                    {
                        mInstTileList.Add(mInstTrackIndex, tile);
                        tile.Init(this, mInstTrackIndex, tTrackType);
                        mInstTrackIndex++;
                    }
                }
            }
            mOnChangeStage.SafeInvoke(mStageIndex + 1, mCurrentPFTrackIndex);
        }
示例#2
0
        public void CreateTrackData()
        {
            List <TrackType> tTypes = new List <TrackType>();

            tTypes.Add(TrackType.E);

            mTrackPlaceData.Clear();

            bool tIsStartRoad = false;
            bool tIsEndRoad   = false;

            for (int i = 0; i < mTileCount - 1;)
            {
                TrackType addTrack = tTypes[UnityEngine.Random.Range(0, tTypes.Count)];
                mTrackPlaceData.Add(addTrack);

                if (CurrentPFTracks.ContainsKey(addTrack))
                {
                    i += CurrentPFTracks[addTrack].TileCount;
                }
                else
                {
                    i++;
                }

                if (tIsStartRoad == false && i >= 5)
                {
                    tIsStartRoad = true;
                    List <TrackType> tTrackDiffcultyList = null;
#if DIFFCULTY
                    tTrackDiffcultyList = mTrackData.DiffcultyList[Mathf.Clamp(mStageIndex, 0, mTrackData.DiffcultyList.Count - 1)].TypeList;
#elif LOW
                    tTrackDiffcultyList = new List <TrackType>();
                    for (int start = (int)TrackType.A; start <= (int)TrackType.F; start++)
                    {
                        tTrackDiffcultyList.Add((TrackType)start);
                    }
#elif MEDIUM
                    tTrackDiffcultyList = new List <TrackType>();
                    for (int start = (int)TrackType.A; start <= (int)TrackType.P; start++)
                    {
                        tTrackDiffcultyList.Add((TrackType)start);
                    }
#endif


                    tTypes.AddRange(tTrackDiffcultyList);
                }
                else if (tIsEndRoad == false && i >= mTileCount - 5)
                {
                    tIsEndRoad = true;
                    tTypes.Clear();
                    tTypes.Add(TrackType.EMPTY);
                }
            }
            mTrackPlaceData.Add(TrackType.END);
            for (int i = 0; i < 3; i++)
            {
                mTrackPlaceData.Add(TrackType.EMPTY);
            }
        }