Beispiel #1
0
 void InitLevelObjects()
 {
     if (inSceneGameObjects.Count > 0)
     {
         for (int i = 0; i < inSceneGameObjects.Count; i++)
         {
             Level_Object obj = inSceneGameObjects[i].GetComponent <Level_Object>();
             obj.UpdateNode(gridBase.grid);
         }
     }
 }
Beispiel #2
0
    void LoadLevelActual(LevelSaveable levelSaveable)
    {
        // Level Objects
        for (int i = 0; i < levelSaveable.saveLevelObjects_List.Count; i++)
        {
            SaveableLevelObject s_obj = levelSaveable.saveLevelObjects_List[i];
            Node nodeToPlace          = GridBase.GetInstance().grid[s_obj.posX, s_obj.posZ];

            GameObject go = Instantiate(
                ResourceManager.GetInstance().GetObjBase(s_obj.obj_Id).objPrefab,
                nodeToPlace.vis.transform.position,
                Quaternion.Euler(
                    s_obj.rotX,
                    s_obj.rotY,
                    s_obj.rotZ))
                            as GameObject;

            nodeToPlace.placedObj               = go.GetComponent <Level_Object>();
            nodeToPlace.placedObj.gridPosX      = nodeToPlace.nodePosX;
            nodeToPlace.placedObj.gridPosZ      = nodeToPlace.nodePosZ;
            nodeToPlace.placedObj.worldRotation = nodeToPlace.placedObj.transform.localEulerAngles;
        }

        // Stackale Objeects
        for (int i = 0; i < levelSaveable.saveStackableObjects_List.Count; i++)
        {
            SaveableLevelObject s_obj = levelSaveable.saveStackableObjects_List[i];
            Node nodeToPlace          = GridBase.GetInstance().grid[s_obj.posX, s_obj.posZ];

            GameObject go = Instantiate(
                ResourceManager.GetInstance().GetStackedObjsBase(s_obj.obj_Id).objPrefab,
                nodeToPlace.vis.transform.position,
                Quaternion.Euler(
                    s_obj.rotX,
                    s_obj.rotY,
                    s_obj.rotZ))
                            as GameObject;

            Level_Object stack_obj = go.GetComponent <Level_Object>();
            stack_obj.gridPosX = nodeToPlace.nodePosX;
            stack_obj.gridPosZ = nodeToPlace.nodePosZ;
            nodeToPlace.stackedObjs.Add(stack_obj);
        }

        // Paint Tiles
        for (int i = 0; i < levelSaveable.saveNodeObjectsList.Count; i++)
        {
            Node node = GridBase.GetInstance().grid[levelSaveable.saveNodeObjectsList[i].posX,
                                                    levelSaveable.saveNodeObjectsList[i].posZ];

            node.vis.GetComponent <NodeObject>().UpdateNodeObject(node, levelSaveable.saveNodeObjectsList[i]);
        }

        // Walls
        for (int i = 0; i < levelSaveable.saveWallsList.Count; i++)
        {
            WallObjectSaveable s_wall = levelSaveable.saveWallsList[i];
            Node nodeToPlace          = GridBase.GetInstance().grid[s_wall.levelObject.posX, s_wall.levelObject.posZ];

            GameObject go = Instantiate(ResourceManager.GetInstance().wallPrefab,
                                        nodeToPlace.vis.transform.position,
                                        Quaternion.identity)
                            as GameObject;

            Level_Object lvlObj = go.GetComponent <Level_Object>();
            lvlObj.gridPosX = nodeToPlace.nodePosX;
            lvlObj.gridPosZ = nodeToPlace.nodePosZ;
            Level_WallObj wall_Obj = go.GetComponent <Level_WallObj>();

            wall_Obj.UpdateWall(s_wall.wallObject.direction);
            wall_Obj.UpdateCorners(s_wall.wallObject.corner_a,
                                   s_wall.wallObject.corner_b, s_wall.wallObject.corner_c);
        }
    }