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; } } } }
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}"); } }
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; } } } }
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); } }