Exemplo n.º 1
0
    void UpdateDoor(RoadInfo info)
    {
        try
        {
            int childCount = DoorArea.transform.childCount;
            for (int i = 0; i < childCount; i++)
            {
                switch (DungeonGenerator.Instance.CurrentDungeon)
                {
                case StateDef.DungeonType.cove:
                case StateDef.DungeonType.crypts:
                    DoorArea.transform.GetChild(i).GetComponent <UITexture>().mainTexture = (Texture)ResMgr.Instance.LoadAssetFromResource(GetDungeonPath() + string.Format(CommonDefine.DungeonDoor, DungeonGenerator.Instance.CurrentDungeon.ToString()));
                    break;

                default:
                    Debug.logger.LogError("Dungeon", "没有这个类型的门");
                    break;
                }
                RoomInfo neibour = info.GetNeibourRoom(DungeonGenerator.Instance.CurrentDir);

                if (neibour == null)
                {
                    Debug.logger.LogError("Neibour", "road neibour room " + info.NeighbourRooms.Count);
                }

                if (info.BuildDir == DungeonGenerator.Instance.CurrentDir)
                {
                    //如果是跟所造路同方向,那么进门处的坐标就是当前路的起始坐标
                    if (i == 0)
                    {
                        DoorArea.transform.GetChild(i).GetComponent <DoorView>().Init(info.X, info.Y);
                    }
                    else if (i == 1)
                    {
                        DoorArea.transform.GetChild(i).GetComponent <DoorView>().Init(neibour.X, neibour.Y);
                    }
                }
                else
                {
                    //如果是跟所造路反方向,那么进门处的坐标就是当前路的出口坐标
                    if (i == 0)
                    {
                        DoorArea.transform.GetChild(i).GetComponent <DoorView>().Init(neibour.X, neibour.Y);
                    }
                    else if (i == 1)
                    {
                        DoorArea.transform.GetChild(i).GetComponent <DoorView>().Init(info.X, info.Y);
                    }
                }
            }
        }
        catch (System.Exception ex)
        {
            Debug.logger.Log(ex.Message);
        }
    }