private void LoadedPrefab(AsyncOperationHandle <GameObject> obj) { GameObject result = obj.Result; DungeonRoomObjectComponent droc = result.GetComponent <DungeonRoomObjectComponent>(); prefabs.Add(droc); }
private void DrawRoomObjects(string type, DungeonRoom room, Vector3 offset) { List <DungeonRoomObject> objs = room.roomObjects; PlanetVisualData dataSet = GetVisualDataSet(type); //GameObject puzzleHolder = new GameObject("Block push puzzle holder"); //Rigidbody2D rb = puzzleHolder.AddComponent<Rigidbody2D>(); //rb.gravityScale = 0f; //rb.bodyType = RigidbodyType2D.Static; //puzzleHolder.AddComponent<CompositeCollider2D>(); //puzzleHolder.transform.parent = objectParent; for (int i = 0; i < objs.Count; i++) { DungeonRoomObject obj = objs[i]; if (obj.IsCreated) { continue; } string objName = obj.ObjectName; Vector3 pos = obj.RoomSpacePosition + offset; DungeonRoomObjectComponent newObj = GetObjectToSpawn(objName); if (newObj == null) { continue; } newObj.Setup(this, obj); newObj.transform.parent = obj.IsPersistent ? null : objectParent; if (obj.IsPersistent) { obj.IsCreated = true; } } }
private DungeonRoomObjectComponent GetObjectToSpawn(string objName) { DungeonRoomObjectComponent prefab = prefabs.FirstOrDefault(t => t.objectName == objName); if (prefab == null) { Debug.Log(objName); return(null); } return(Instantiate(prefab)); }