コード例 #1
0
ファイル: Tile.cs プロジェクト: Limworld98/gamnet
    public void Init(int index, Message.DungeonTileType type, Vector2Int position)
    {
        this.index    = index;
        this.type     = type;
        this.position = position;

        gameObject.name = "Tile_" + index.ToString() + "_" + type.ToString();

        if (Message.DungeonTileType.Floor == type)
        {
            touchInput             = gameObject.AddComponent <TouchInput>();
            touchInput.on_touch_up = (Vector3 pos) =>
            {
                Util.EventSystem.Publish <Vector2Int>(EventID.Event_OnTouch, this.position);
            };
        }
        spriteRenderer = gameObject.AddComponent <SpriteRenderer>();
    }
コード例 #2
0
ファイル: Dungeon.cs プロジェクト: Limworld98/gamnet
        private void Recv_CreateDungeon_Ans(Message.Dungeon.MsgSvrCli_CreateDungeon_Ans ans)
        {
            GameManager.Instance.LobbySession.UnregisterHandler <Message.Dungeon.MsgSvrCli_CreateDungeon_Ans>(Recv_CreateDungeon_Ans);
            if (Message.ErrorCode.Success != ans.error_code)
            {
                GameManager.Instance.ui.alert.Open("MsgSvrCli_CreateDungeon_Ans", ans.error_code.ToString() + "(" + ans.error_code.ToString() + ")");
                return;
            }

            gameObject.SetActive(true);

            Camera.main.enabled = false;

            this.width  = ans.width;
            this.height = ans.height;
            this.tiles  = new List <Tile>(new Tile[width * height]);

            for (int y = 0; y < height; y++)
            {
                for (int x = 0; x < width; x++)
                {
                    if (Message.DungeonTileType.Invalid == ans.tiles[y * width + x])
                    {
                        continue;
                    }

                    GameObject obj = new GameObject();
                    obj.transform.SetParent(tile_root, false);
                    obj.transform.localPosition = new Vector3(x, y, 0.0f);
                    obj.SetActive(false);

                    Tile tile  = obj.AddComponent <Tile>();
                    int  index = y * width + x;
                    Message.DungeonTileType tileType = ans.tiles[index];
                    Vector2Int position = new Vector2Int(x, y);
                    tile.Init(index, tileType, position);
                    tiles[y * width + x] = tile;
                }
            }

            Unit player = GameObject.Instantiate <Unit>(player_prefab);

            player.seq = ans.unit_seq;
            player.GetComponent <PlayerController>().enabled = true;
            player.transform.SetParent(unit_root, false);

            player.position = new Vector2Int(ans.position.x, ans.position.y);
            units.Add(player.seq, player);

            foreach (var comrade in ans.comrades)
            {
                Unit unit = GameObject.Instantiate <Unit>(player_prefab);
                unit.seq = comrade.unit_seq;
                unit.GetComponent <PlayerController>().enabled = false;
                unit.transform.SetParent(unit_root, false);
                foreach (UInt32 itemIndex in comrade.equip_items)
                {
                    Item.Meta meta = Item.Manager.Instance.FindMeta(itemIndex);
                    unit.GetComponent <Player>().OnEquip(meta.equip.part, meta.equip.item_sprite);
                }

                unit.position = new Vector2Int(comrade.position.x, comrade.position.y);
                units.Add(unit.seq, unit);
            }

            /*
             * foreach (var monster in ans.monsters)
             * {
             *      GameObject obj = new GameObject();
             *      obj.name = "Monster_" + monster.seq;
             *      Unit unit = obj.AddComponent<Unit>();
             *      unit.seq = monster.seq;
             *      unit.position = new Vector2Int(monster.position.x, monster.position.y);
             *      //obj.transform.SetParent(GameManager.Instance.scenes.dungeon.transform);
             *      obj.AddComponent<Monster>();
             *      //GameManager.Instance.scenes.dungeon.monsters[unit.seq] = unit;
             * }
             */
        }