Пример #1
0
    void Start()
    {
        itemBoxs = new List <MoveableProp>();
        goalDic  = new Dictionary <Vector3, GameObject>();

        for (int z = 0; z < stage.Length; ++z)
        {
            for (int x = 0; x < stage[z].Length; ++x)
            {
                switch (stage[z][x])
                {
                case 'P':
                    SetPropPosition(player.gameObject, x, z);
                    player.Init(x, z);
                    break;

                case 'W':     // if (stage[z][x] == 'W') 와 같은 의미
                    LeavePropOnStage(wallPrefab, x, z);
                    break;

                case 'I':
                    GameObject   item         = LeavePropOnStage(itemBoxPrefab, x, z);
                    MoveableProp moveableItem = item.GetComponent <MoveableProp>();
                    moveableItem.Init(x, z);
                    itemBoxs.Add(moveableItem);
                    break;

                case 'G':
                    GameObject goalObj = LeavePropOnStage(goalPrefab, x, z);
                    goalDic.Add(new Vector3(x, 0, z), goalObj);
                    break;
                }
            }
        }
    }
Пример #2
0
        public static InstanceData Move(MoveMessage msg)
        {
            switch (msg.type)
            {
            case "node":
                MoveableNode mnode = new MoveableNode(new InstanceID()
                {
                    NetNode = (ushort)msg.id
                });
                mnode.MoveCall(msg.position != null ? msg.position.ToUnity() : mnode.position);
                return(NetLogic.PrepareNode((ushort)msg.id));

            case "segment":
                MoveableSegment seg = new MoveableSegment(new InstanceID()
                {
                    NetSegment = (ushort)msg.id
                });
                seg.MoveCall(msg.position != null ? msg.position.ToUnity() : seg.position);
                return(NetLogic.PrepareSegment((ushort)msg.id));

            case "building":
                MoveableBuilding b = new MoveableBuilding(new InstanceID()
                {
                    Building = (ushort)msg.id
                });
                b.MoveCall(msg.position != null ? msg.position.ToUnity() : b.position, msg.is_angle_defined ? msg.angle : b.angle);
                return(ManagersLogic.PrepareBuilding((ushort)msg.id));

            case "prop":
                MoveableProp p = new MoveableProp(new InstanceID()
                {
                    Prop = (ushort)msg.id
                });
                p.MoveCall(msg.position != null ? msg.position.ToUnity() : p.position, msg.is_angle_defined ? msg.angle : p.angle);
                return(ManagersLogic.PrepareProp((ushort)msg.id));

            case "tree":
                MoveableTree t = new MoveableTree(new InstanceID()
                {
                    Tree = msg.id
                });
                t.MoveCall(msg.position != null ? msg.position.ToUnity() : t.position);
                return(ManagersLogic.PrepareTree(msg.id));

            default:
                throw new Exception($"Cannot move {msg.type}");
            }
        }
Пример #3
0
    private void Start()
    {
        itemBoxes = new List <MoveableProp>();
        goalDic   = new Dictionary <Vector3, GameObject>();

        for (int z = 0; z < stage.Length; z++)
        {
            for (int x = 0; x < stage[z].Length; x++)
            {
                switch (stage[z][x])
                {
                case 'P':
                    SetPropPosition(player.gameObject, x, z);
                    player.Init(x, z);
                    break;

                case 'W':
                    LeavePropOnStage(wallPrefab, x, z);
                    break;

                case 'I':
                    GameObject item = LeavePropOnStage(itemBoxPrefab, x, z);

                    MoveableProp moveableItem = item.GetComponent <MoveableProp>();

                    itemBoxes.Add(moveableItem); //List Add/Remove/Removeat

                    // itemBoxes.Remove(moveableItem);
                    // itemBoxes.RemoveAt(index);

                    moveableItem.Init(x, z);
                    break;

                case 'G':
                    GameObject goalObj = LeavePropOnStage(goalPrefab, x, z);
                    goalDic.Add(new Vector3(x, 0f, z), goalObj);
                    break;

                default:
                    break;
                }
            }
        }
    }
Пример #4
0
    bool MoveProp(int moveX, int moveZ, MoveableProp prop)
    {
        char moveCell = stage[moveZ][moveX];

        switch (moveCell)
        {
        case 'W':
            return(false);

        case 'I':
            foreach (var item in itemBoxes)
            {
                if (item.myPos == new Vector3(moveX, 0f, moveZ))
                {
                }
            }
            return(true);

        default:
            return(false);
        }
    }