private void Client_SpawnGameObject(ClientBase sender, SpawnGameObject packet) { Console.WriteLine(packet); //To avoid duplicates and possibly infinite spawn loop. if (gameObjects.ContainsKey(packet.UID)) { return; } GameObject gameObject = ObjectInstantiator.Instantiate((Objects)packet.ObjType); gameObject.name = packet.name; gameObject.UID = packet.UID; if (packet.parentUID == 0) { world.AddChild(gameObject, false); } else { gameObjects[packet.parentUID].AddChild(gameObject, false); //TODO: It errors here with gameObjects[packet.parentUID] not existing, but it happens randomly } gameObjects[gameObject.UID] = gameObject; //TODO: MOVE THIS CODE ELSEWHERE Game1.worldActionScript.SetVariable(new string[] { gameObject.name }, new Dictionary <string, object>()); Game1.worldActionScript.SetVariable(new string[] { gameObject.name, "object" }, gameObject); }
private void Client_SpawnGameObject(ClientBase sender, SpawnGameObject packet) { //To avoid duplicates and possibly infinite spawn loop. //TODO: Restrict the amount of temp ids. if (gameObjects.ContainsKey(packet.UID)) { return; //Send back an error. } if (!clientObjectIdsToServerObjectIds.ContainsKey(sender)) { clientObjectIdsToServerObjectIds.Add(sender, new Dictionary <int, int>()); } Dictionary <int, int> clientToServerIds = clientObjectIdsToServerObjectIds[sender]; GameObject gameObject = ObjectInstantiator.Instantiate((Objects)packet.ObjType); gameObject.UID = GenerateFreeId(); clientToServerIds[packet.UID] = gameObject.UID; sender.Send(new ChangeGameObjectUID() { oldUID = packet.UID, newUID = gameObject.UID }); if (packet.parentUID == 0) { world.AddChild(gameObject); } else { gameObjects[clientToServerIds[packet.parentUID]].AddChild(gameObject); } }
public void Destroy() { _callback = null; if (_spawnGo != null) { _spawnGo.Restore(); _spawnGo = null; } }
public void spawnTimimg_Test() { //ARRANGE var spawnGameObject = new SpawnGameObject(); var min = 5f; var max = 10f; var expectedOutput = 5f; //ACT var points = spawnGameObject.spawnTimimg(min, max); //ASSERT Assert.That(points, Is.EqualTo(expectedOutput)); }
public void Create(System.Action callback) { if (_spawnGo != null) { GameLogger.Error($"Avatar is create yet : {_avatarTable.Id}"); return; } _callback = callback; // 对象池 _spawnGo = GameObjectPoolManager.Instance.Spawn(GetModelName()); _spawnGo.Completed += SpawnGo_Completed; }
private void Client_SpawnGameObjectRequest(ClientBase sender, SpawnGameObject packet) { Console.WriteLine($"Client {Id} requested to spawn {packet.UID}:{packet.parentUID} of type {packet.ObjType};"); }
// Use this for initialization void Start() { spawner = gameObject.GetComponent <SpawnGameObject> (); scoreBoost = scoreBoosts [PlayerPrefManager.GetScoreBoostLvl()]; }
void Start() { spawner = gameObject.GetComponent <SpawnGameObject> (); spawner.secondsBetweenSpawning = boostSpawnTimes [PlayerPrefManager.GetTimeBoostLvl()]; }