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(); }
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; }
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); }
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); }
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); }
protected virtual void OnBallChanged() { Ball.Hit += Ball_Hit; Cue.DirectionLineCalculator.Projection = PrefabUtil.Create <GameObject>("Projection", "Ball"); }