private void Move(KeyBoardMoveDescriptor keyBoardMoveDescriptor) { if (keyBoardMoveDescriptor == KeyBoardMoveDescriptor.None) { m_animator.SetInteger("ForwardOrBack", 0); return; } m_animator.SetInteger("ForwardOrBack", 1); if ((keyBoardMoveDescriptor & KeyBoardMoveDescriptor.Up) != 0) { m_animator.SetFloat("Direction", 1.0f, 0.0f, Time.deltaTime); } else if ((keyBoardMoveDescriptor & KeyBoardMoveDescriptor.Down) != 0) { m_animator.SetFloat("Direction", -1.0f, 0.0f, Time.deltaTime); } else { m_animator.SetFloat("Direction", 0.0f); } if ((keyBoardMoveDescriptor & KeyBoardMoveDescriptor.Left) != 0) { m_animator.SetFloat("LeftOrRight", -1.0f, 0.2f, Time.deltaTime); } else if ((keyBoardMoveDescriptor & KeyBoardMoveDescriptor.Right) != 0) { m_animator.SetFloat("LeftOrRight", 1.0f, 0.2f, Time.deltaTime); } else { m_animator.SetFloat("LeftOrRight", 0.0f, 0.2f, Time.deltaTime); } }
// Update is called once per frame void Update() { // player dying if (m_animator.GetBool("Death")) { // if (m_deathCount > 0) // { // m_deathCount -= Time.deltaTime; // MessageDispacher.Instance.Send( // UIMessage.UpdateRebornProgress, 1.0f - m_deathCount / PlayerConfigure.RebornWaitingTime); // if (m_deathCount <= 0) // { // m_deathCount = 0; // m_networkService.Send(new PlayerRebornCommand(PlayerInfo.LocalPlayer.UserID)); // } // } return; } if (Cursor.lockState != CursorLockMode.Locked) { return; } // move m_keyBoardDirection = KeyBoardMoveDescriptor.None; float dx = Input.GetAxis("Mouse X"); var rate = PlayerConfigure.CameraMouseMoveRateX; m_phi += dx * rate; if (Mathf.Abs(dx) > 1e-5f) { m_isRotate = true; } var rotate = Quaternion.AngleAxis(360.0f * m_phi, Vector3.up); this.transform.rotation = rotate; if (Input.GetKey(KeyCode.W)) { m_keyBoardDirection |= KeyBoardMoveDescriptor.Up; m_animator.SetFloat("Direction", 1.0f, 0.0f, Time.deltaTime); } else if (Input.GetKey(KeyCode.S)) { m_keyBoardDirection |= KeyBoardMoveDescriptor.Down; m_animator.SetFloat("Direction", -1.0f, 0.0f, Time.deltaTime); } else { m_animator.SetFloat("Direction", 0.0f); } if (Input.GetKey(KeyCode.A)) { m_keyBoardDirection |= KeyBoardMoveDescriptor.Left; m_animator.SetFloat("LeftOrRight", -1.0f, 0.2f, Time.deltaTime); } else if (Input.GetKey(KeyCode.D)) { m_keyBoardDirection |= KeyBoardMoveDescriptor.Right; m_animator.SetFloat("LeftOrRight", 1.0f, 0.2f, Time.deltaTime); } else { m_animator.SetFloat("LeftOrRight", 0.0f, 0.2f, Time.deltaTime); } Move(); if (m_keyBoardDirection != KeyBoardMoveDescriptor.None || Input.GetKey(KeyCode.Space)) { m_networkService.Send( new MoveCommand( PlayerInfo.LocalPlayer.UserID, transform.position, m_phi, (byte)m_keyBoardDirection, Input.GetKey(KeyCode.Space) ) ); } else { if (m_isRotate) { m_networkService.Send(new PlayerRotateCommand(PlayerInfo.LocalPlayer.UserID, m_phi)); } } if (Input.GetKeyDown(KeyCode.Alpha1)) { m_currentPlayerMode = PlayerMode.Normal; m_handTrap.SetActive(false); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { m_currentPlayerMode = PlayerMode.SetTrap; m_handTrap.SetActive(true); m_handTrap.GetComponent <TrapController>().Reset(); } if (m_currentPlayerMode == PlayerMode.Normal) { // switch shooting mode if (Input.GetKeyDown(KeyCode.T)) { if (m_shootingMode == ShootingMode.Fixed) { m_shootingMode = ShootingMode.Running; } else if (m_shootingMode == ShootingMode.Running) { m_shootingMode = ShootingMode.Fixed; } } // recharge if (Input.GetKeyDown(KeyCode.R)) { Recharge(); } // shoot Shoot(); } // set trap else { SetTrap(); } BuyThings(); DriveTank(); m_isRotate = false; }