void TargetAddFurniture(NetworkConnection networkConnection, NetworkObjectInfos objectInfos) { Scene actualScene = SceneManager.GetActiveScene(); GameObject[] sceneObjects = actualScene.GetRootGameObjects(); Transform parent = null; foreach (GameObject go in sceneObjects) { if (go.name == "prefabs group") { parent = go.transform; } } Item.TypeItem itemToSpawnType = (Item.TypeItem)objectInfos.idItem; Furniture furniture = GetFurnitureFromType(itemToSpawnType); if (furniture != null) { Vector3 position = Vector3.zero; position.x = objectInfos.posX; position.y = objectInfos.posY; GameObject prefab = GetPrefabFromFurniture(furniture); string saveFile = actualScene.name; GameObject furnitureGO = Instantiate(prefabsProps[(int)itemToSpawnType][objectInfos.direction], position, Quaternion.identity); furnitureGO.GetComponent <SpriteRenderer>().sprite = SpriteManager.GetSpriteManager.GetFurnitureSprite(furnitureGO.name.Substring(0, furnitureGO.name.IndexOf("_")), objectInfos.indexSprite, (E_FurnitureDirection)objectInfos.direction); props.Add(furnitureGO); furnitureGO.transform.SetParent(parent); } }
void CmdAddFurniture(int sceneId, NetworkObjectInfos networkObjectInfos) { if (!listFunituresPerScenes.ContainsKey(sceneId)) { listFunituresPerScenes.Add(sceneId, new List <NetworkObjectInfos>()); } listFunituresPerScenes[sceneId].Add(networkObjectInfos); foreach (GameObject g in PlayerManager.GetPlayerManager.listConnectedPlayers[sceneId]) { TargetAddFurniture(g.GetComponent <NetworkIdentity>().connectionToClient, networkObjectInfos); } }
IEnumerator IAddFuniture(NetworkObjectInfos networkObjectInfos) { if (!hasAuthority) { pc.CmdSetAuthority(netID); } while (!hasAuthority) { yield return(null); } CmdAddFurniture(SceneManager.GetActiveScene().buildIndex, networkObjectInfos); }