// Actor ID -> which NPC to load from the database. void SpawnActor() { ActorSpawnToken token = new ActorSpawnToken(); token.actorID = actor.GetComponent <ActorNPC>().npcID; token.actorPos = transform.position; var evnt = SpawnActorEvent.Create(); evnt.ActorSpawnToken = token; evnt.ActorPrefab = actor.GetComponent <BoltEntity>().prefabId; Debug.Log("Spawning Actor " + actor.name); evnt.Send(); }
/// <summary> /// Spawns a player prefab with the given actor token. /// </summary> /// <param name="prefab"></param> /// <param name="token"></param> public void Spawn(Bolt.PrefabId prefab, ActorSpawnToken token) { if (!actor) { //actor = BoltNetwork.Instantiate(BoltPrefabs.Player, token); //actor = BoltNetwork.Instantiate(token.actorPrefab, token, token.actorPos, Quaternion.identity); actor = BoltNetwork.Instantiate(prefab, token, token.actorPos, Quaternion.identity); } // Server takes control of the char it spawns; // client is GIVEN control of the char it spawns. if (isServer) { Debug.Log("Server taking control of " + actor.prefabId); actor.TakeControl(); } else { BoltConsole.Write("Server has NOT taken control of the actor."); } }