Exemple #1
0
        public SpawnedObjectController SpawnAsController(GameObject prefab, Vector3 position, Quaternion rotation, Transform par = null, System.Action <GameObject> initializeProperties = null, ISpawner optionalSpawnPoint = null)
        {
            var cache = this.FindPrefabCache(prefab);

            if (cache != null)
            {
                var controller = cache.Spawn(position, rotation, par, initializeProperties);
                this.SignalSpawned(controller, optionalSpawnPoint);
                return(controller);
            }
            else
            {
                var obj = PrefabUtil.Create(prefab, position, rotation, par);
                if (obj != null)
                {
                    var controller = obj.AddOrGetComponent <SpawnedObjectController>();
                    controller.Init(this);
                    if (initializeProperties != null)
                    {
                        initializeProperties(obj);
                    }
                    controller.SetSpawned();
                    this.SignalSpawned(controller, optionalSpawnPoint);
                    return(controller);
                }
                else
                {
                    return(null);
                }
            }
        }
        public void Start()
        {
            var spaceshipPrefab = PrefabUtil.Create <SpaceshipController>("GhostSpaceship");

            _ghostSpaceShip       = GameObject.Instantiate(spaceshipPrefab, Spaceship.transform.position + Spaceship.transform.up, Spaceship.transform.rotation);
            _ghostSpaceShip.Input = Spaceship.Input;


            UpdateTopAssaultWeapon();
        }
Exemple #3
0
        public override void Start()
        {
            Controller.Input.enabled = true;

            var spaceshipPrefab = PrefabUtil.Create <SpaceshipController>("Spaceship");

            _spaceShip       = GameObject.Instantiate(spaceshipPrefab, Vector3.zero, Quaternion.identity);
            _spaceShip.Input = Controller.Input;
            _spaceShip.StartEngine();

            PrepareCamera();

            Controller.AstroidController.Initialize();
            Controller.UIController.Exit += UIController_Exit;
            Controller.UIController.AbilityController.Changed += AbilityController_Changed;
        }
Exemple #4
0
        public static T GetWeapon <T>(Transform parent, string name = "") where T : SpaceshipAssaultWeapon, new()
        {
            T prefab = PrefabUtil.Create <T>(string.IsNullOrEmpty(name) ? typeof(T).Name : name);

            if (prefab == null)
            {
                return(null);
            }

            var weapon = GameObject.Instantiate(prefab);

            weapon.transform.parent        = parent;
            weapon.transform.localPosition = Vector3.zero;
            weapon.transform.localRotation = Quaternion.identity;
            return(weapon);
        }
Exemple #5
0
            private SpawnedObjectController CreateCacheInstance(int index)
            {
                var obj = PrefabUtil.Create(this.Prefab, Vector3.zero, Quaternion.identity);

                obj.name = this.ItemName + (index + 1).ToString("000");
                var cntrl = obj.AddComponent <SpawnedObjectController>();

                cntrl.Init(_owner, this.ItemName);

                obj.transform.parent        = _owner.transform;
                obj.transform.localPosition = Vector3.zero;
                obj.transform.rotation      = Quaternion.identity;

                //obj.DeactivateAll();
                obj.SetActive(false);

                return(cntrl);
            }
Exemple #6
0
        public static Player Create(PlayerDataContext dataContext)
        {
            GameObject go     = new GameObject(dataContext.UserName);
            Player     player = go.AddComponent <Player>();

            player.SetDataContext(dataContext);

            player.OffsetGO = new GameObject("offset");
            player.OffsetGO.transform.parent        = player.transform;
            player.OffsetGO.transform.localPosition = player.OFFSET;

            GameObject cue = Instantiate(PrefabUtil.Create <GameObject>(dataContext.CuePrefabName, "cue"));

            cue.transform.parent    = player.transform;
            player.Cue              = cue.transform.Find("Spin").Find("Cue").GetComponent <BaseCue>();
            player.Cue.TriggerStay += player.Cue_TriggerStay;

            return(player);
        }
Exemple #7
0
        protected virtual void OnBallChanged()
        {
            Ball.Hit += Ball_Hit;

            Cue.DirectionLineCalculator.Projection = PrefabUtil.Create <GameObject>("Projection", "Ball");
        }