public void RepositionObjectClient(SpotPuzzleRoomMessage _msg) { List <Vector3> tempList = new List <Vector3>(); tempList.Add(_msg.shape01_pos); tempList.Add(_msg.shape02_pos); tempList.Add(_msg.shape03_pos); tempList.Add(_msg.shape04_pos); OriginalGroup = this.transform.GetChild(0); ChangedGroup = this.transform.GetChild(1); for (int i = 0; i < OriginalGroup.childCount; ++i) { Vector3 newPos = tempList[i]; OriginalGroup.GetChild(i).position = newPos; newPos.x += transform.localScale.x * 0.5f; ChangedGroup.GetChild(i).position = newPos; } changedObject = ChangedGroup.GetChild(_msg.changedObjectIndex).gameObject; Color newColor = changedObject.GetComponent <SpriteRenderer>().color; newColor = _msg.changedObjectColor; changedObject.GetComponent <SpriteRenderer>().color = newColor; }
public void SendSpotPuzzle_C2S(SpotPuzzleRoomMessage _message) { SpotPuzzleRoomMessage msg = _message; Debug.Log("SendSpotPuzzle_C2S"); myClient.Send(MyMsgType.spotPuzzleMsgType_client, msg); }
public void SendSpotPuzzle_S2C(SpotPuzzleRoomMessage _message) { SpotPuzzleRoomMessage msg = _message; Debug.Log("SendSpotPuzzle_S2C"); if (NetworkServer.active) { NetworkServer.SendToAll(MyMsgType.spotPuzzleMsgType_server, msg); } }
public void OnRecvSpotPuzzle_Client(NetworkMessage netMsg) { if (Global.Instance.player.GetComponent <NetworkIdentity>().isServer) { return; } SpotPuzzleRoomMessage msg = netMsg.ReadMessage <SpotPuzzleRoomMessage>(); Debug.Log("ClientRecv_SpotPuzzle : room_" + msg.roomId); //reinit the pos of the puzzles to match with host Global.Instance.roomGen.GetRoomList()[msg.roomId].GetComponent <SpotPuzzleRoomScript>(). RepositionObjectClient(msg); }
public void OnRecvSpotPuzzle_Server(NetworkMessage netMsg) { SpotPuzzleRoomMessage msg = netMsg.ReadMessage <SpotPuzzleRoomMessage>(); Debug.Log("Host/ServerRecv_SpotPuzzle : room_" + msg.roomId); }
// Use this for initialization void Start() { //Random.Range(1, 1); //wad = new ArrayList(); player = Global.Instance.player; OriginalGroup = this.transform.GetChild(0); ChangedGroup = this.transform.GetChild(1); int randIndex = 0; Color newColor = new Color(1, 1, 1); if (player.GetComponent <NetworkIdentity>().isServer) { for (int i = 0; i < OriginalGroup.childCount; ++i) { Vector3 newPos = new Vector3(Random.Range(transform.position.x - transform.localScale.x * 0.5f + 2.5f, transform.position.x - 2.5f), Random.Range(transform.position.y - transform.localScale.y * 0.5f + 2.5f, transform.position.y + transform.localScale.y * 0.5f - 2.5f), 1); OriginalGroup.GetChild(i).position = newPos; newPos.x += transform.localScale.x * 0.5f; ChangedGroup.GetChild(i).position = newPos; } randIndex = Random.Range(0, 4); changedObject = ChangedGroup.GetChild(randIndex).gameObject; newColor = changedObject.GetComponent <SpriteRenderer>().color; newColor.r = Random.Range(0.0f, 1.0f); newColor.g = Random.Range(0.0f, 1.0f); newColor.b = Random.Range(0.0f, 1.0f); newColor.a = Random.Range(0.0f, 1.0f); changedObject.GetComponent <SpriteRenderer>().color = newColor; } roomScript = this.GetComponent <RoomScript>(); doorInfoList.Add(new DoorInfo(roomScript.GetIsLocked(DIRECTION.LEFT), roomScript.GetHasTriggerBox(DIRECTION.LEFT), DIRECTION.LEFT)); doorInfoList.Add(new DoorInfo(roomScript.GetIsLocked(DIRECTION.RIGHT), roomScript.GetHasTriggerBox(DIRECTION.RIGHT), DIRECTION.RIGHT)); doorInfoList.Add(new DoorInfo(roomScript.GetIsLocked(DIRECTION.UP), roomScript.GetHasTriggerBox(DIRECTION.UP), DIRECTION.UP)); doorInfoList.Add(new DoorInfo(roomScript.GetIsLocked(DIRECTION.DOWN), roomScript.GetHasTriggerBox(DIRECTION.DOWN), DIRECTION.DOWN)); //doorList.Add(roomScript.GetIsLocked(DIRECTION.LEFT)); //doorList.Add(roomScript.GetIsLocked(DIRECTION.RIGHT)); //doorList.Add(roomScript.GetIsLocked(DIRECTION.UP)); //doorList.Add(roomScript.GetIsLocked(DIRECTION.DOWN)); //if (spotPuzzleMsg != null) // RepositionObjectClient(spotPuzzleMsg); elapsedTime = 0.0f; puzzleComplete = false; isCompleted = false; isLock = false; style = new GUIStyle(); content = new GUIContent(); //if is host/server if (player.GetComponent <NetworkIdentity>().isServer) { //send msg to clients SpotPuzzleRoomMessage message = new SpotPuzzleRoomMessage(); message.roomId = roomScript.GetRoomID(); message.shape01_pos = OriginalGroup.GetChild(0).position; message.shape02_pos = OriginalGroup.GetChild(1).position; message.shape03_pos = OriginalGroup.GetChild(2).position; message.shape04_pos = OriginalGroup.GetChild(3).position; message.changedObjectIndex = randIndex; message.changedObjectColor = newColor; MessageHandler.Instance.SendSpotPuzzle_S2C(message); } }