SpawnCar() public method

public SpawnCar ( ) : void
return void
コード例 #1
0
        public bool Receive(TrainCarInformationPacket packet, ClientId client)
        {
            var player = MultiPlayerManager.Instance.RemotePlayers[client];

            Logger.LogInfo($"Spawning remote car {packet.CarType} at {packet.Position} moved by {WorldMover.currentMove} for {player}");

            var prefab = CarTypes.GetCarPrefab(packet.CarType);

            var(rail, _) = RailTrack.GetClosest(packet.Position + WorldMover.currentMove);
            TrainCar train;

            using (SpawningCar)
                train = CarSpawner.SpawnCar(prefab, rail, packet.Position + WorldMover.currentMove, packet.Forward);

            if (train.GetComponent <LocoControllerShunter>())
            {
                train.gameObject.AddComponent <LocoStateShunterSync>().Init(packet.Id);
            }
            //else if (train.GetComponent<LocoControllerDiesel>()) train.gameObject.AddComponent<LocoStateDieselSync>().Init(packet.Id);
            //else if (train.GetComponent<LocoControllerSteam>()) train.gameObject.AddComponent<LocoStateHandcarSync>().Init(packet.Id);
            //else if (train.GetComponent<LocoControllerHandcar>()) train.gameObject.AddComponent<LocoStateHandcarSync>().Init(packet.Id);
            //else if (train.GetComponent<LocoControllerBase>()) train.gameObject.AddComponent<LocoStateSync>().Init(packet.Id);
            else
            {
                train.gameObject.AddComponent <TrainCarSync>().Init(packet.Id);
            }

            train.logicCar.ID = packet.Name;
            train.trainPlatesCtrl.trainCarPlates.ForEach(plate => plate.id.text = packet.Name);

            return(true);
        }
コード例 #2
0
    public void SpawnTriggerEntered()
    {
        roadSpawner.MoveRoad();
        carSpawner.SpawnCar();
        pickUpSpawner.SpawnPickUp();
        environmentSpawner.SpawnTile();

        enemySpawner.SpawnEnemy();
    }
コード例 #3
0
    void UpdateCars()
    {
        CarTimer += Time.deltaTime;

        if (CarTimer < CarDelay)
        {
            return;
        }

        CarTimer -= CarDelay;

        Car car = CarSpawner.SpawnCar();

        car.OnCollision = OnCarCollision;
    }
コード例 #4
0
ファイル: CarSpawner.cs プロジェクト: kasraman1000/ggj2019
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();

            if (!EditorApplication.isPlaying)
            {
                return;
            }

            GUILayout.Space(20);

            if (GUILayout.Button("Spawn"))
            {
                CarSpawner.SpawnCar();
            }
        }
コード例 #5
0
        public void OnUse()
        {
            switch (state)
            {
            case State.EnterSpawnMode:
                SetCarToSpawn(Main.CustomCarManagerInstance.CustomCarsToSpawn[selectedCarTypeIndex]);
                SetState(State.PickCar);
                break;

            case State.PickCar:
                if (carPrefabToSpawn == null)
                {
                    Debug.LogError("carPrefabToSpawn is null! Something is wrong, can't spawn this car.",
                                   this);
                    ClearFlags();
                    break;
                }

                if (canSpawnAtPoint)
                {
                    SetState(State.PickDestination);
                    CommsRadioController.PlayAudioFromRadio(confirmSound, transform);
                    break;
                }

                ClearFlags();
                CommsRadioController.PlayAudioFromRadio(cancelSound, transform);
                break;

            case State.PickDestination:
                if (canSpawnAtPoint)
                {
                    var forward = closestPointOnDestinationTrack.Value.forward;
                    if (!spawnWithTrackDirection)
                    {
                        forward = -forward;
                    }
                    var trainCar = CarSpawner.SpawnCar(carPrefabToSpawn, destinationTrack,
                                                       (Vector3)closestPointOnDestinationTrack.Value.position + WorldMover.currentMove,
                                                       forward, true);
                    if (trainCar != null)
                    {
                        SingletonBehaviour <UnusedTrainCarDeleter> .Instance.MarkForDelete(trainCar);

                        CommsRadioController.PlayAudioFromCar(spawnVehicleSound, trainCar);
                        CommsRadioController.PlayAudioFromRadio(confirmSound, transform);
                        canSpawnAtPoint = false;
                        Main.CustomCarManagerInstance.CustomCarsToSpawn[selectedCarTypeIndex].Spawn(trainCar);
                        break;
                    }

                    Debug.LogError("Couldn't spawn car!", carPrefabToSpawn);
                    ClearFlags();
                    break;
                }

                ClearFlags();
                CommsRadioController.PlayAudioFromRadio(cancelSound, transform);
                break;
            }
        }