示例#1
0
        public ArrowController(float startTime, GameObject arrowPrefab, TrackRunner trackRunner)
        {
            _startTime = startTime;
            GameObject go = Object.Instantiate(arrowPrefab, new Vector3(0, 7, 0), Quaternion.identity) as GameObject;
            _material = go.transform.Find("Arrow").GetComponent<Renderer>().material;

            _trackFollowingGO = new TrackFollowingGameObject(go, trackRunner, Vector3.forward);
        }
示例#2
0
        public TrainController(LevelTree level, SplitTrack startTrack, GameObject trainPrefab, TrackConnectionResolver connectionResolver)
        {
            SubTrackGroup stGroup = startTrack.FirstSubTrack.FirstGroup;
            _trackRunner = new TrackRunner(connectionResolver, stGroup, false);

            GameObject go = Object.Instantiate(trainPrefab);
            _trackFollowingGO = new TrackFollowingGameObject(go, _trackRunner, Vector3.forward);
        }
        public TrackFollowingGameObject(GameObject gameObject, TrackRunner trackRunner, Vector3 prefabForward)
        {
            GameObject = gameObject;
            _trackRunner = trackRunner;

            _prefabRotation = Quaternion.FromToRotation(prefabForward, Vector3.forward);
            AttachToCurrentGroup();
            SetCurrentRotationAndPosition();
        }
示例#4
0
        private void SpawnArrows(UpdateState gameState)
        {
            float time = gameState.Time;
            if (time - _arrowSpawnTimer < ArrowSpawnInterval) return;

            TrackRunner trackRunner = new TrackRunner(_connectionResolver, _junction.NextBranch, false);
            _arrows.Enqueue(new ArrowController(time, _arrowPrefab, trackRunner));
            _arrowSpawnTimer += ArrowSpawnInterval;
        }