コード例 #1
0
    private void LoadedPrefab(AsyncOperationHandle <GameObject> obj)
    {
        GameObject result = obj.Result;
        DungeonRoomObjectComponent droc = result.GetComponent <DungeonRoomObjectComponent>();

        prefabs.Add(droc);
    }
コード例 #2
0
    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;
            }
        }
    }
コード例 #3
0
    private DungeonRoomObjectComponent GetObjectToSpawn(string objName)
    {
        DungeonRoomObjectComponent prefab
            = prefabs.FirstOrDefault(t => t.objectName == objName);

        if (prefab == null)
        {
            Debug.Log(objName);
            return(null);
        }
        return(Instantiate(prefab));
    }