/// <summary> /// /// </summary> public void OnChatSubmit() { var chatMessage = this.InputField.text; this.InputField.text = string.Empty; if (m_customEmotes.ContainsKey(chatMessage.ToLower())) { AddMessage("You", "Start to " + chatMessage.Substring(1)); m_localAnimationController.PerformEmote(m_customEmotes[chatMessage.ToLower()]); } else { AddMessage("You", chatMessage); } var chatSendPacket = new Realms.Client.Packet.PlayerChatSendPacket(chatMessage); m_localClient.QueuePacket(chatSendPacket); }
// Update is called once per frame void FixedUpdate() { if (m_mobToAttack != null) { // We are walking to an attack and we have stopped. var mobLocation = m_mobToAttack.transform.position; var myLocation = this.transform.position; if (m_playerWalkingToAttack) { var distance = (mobLocation - myLocation).magnitude; if (distance <= 2.0f) { m_playerWalkingToAttack = false; m_playerAttacking = true; m_attackStartTime = Time.time - 1.0f; } else { var dir = (mobLocation - myLocation).normalized; var target = mobLocation - dir; navAgent.SetDestination(target); SendMovementPacket(target); } } else if (m_playerAttacking) { var dir = (mobLocation - myLocation).normalized; var lookAt = new Vector3(dir.x, 0.0f, dir.z); var rotation = Quaternion.LookRotation(lookAt); this.transform.rotation = rotation; var distance = (mobLocation - myLocation).magnitude; if (distance <= 2.0f) { if (Time.time - m_attackStartTime >= 1.0f) { var attackPacket = new Client.Packet.PlayerAttackPacket(m_mobToAttack.ID, UnityEngine.Random.Range(0, 3)); m_localClient.QueuePacket(attackPacket); m_attackStartTime = Time.time; } } else { var target = mobLocation - dir; navAgent.SetDestination(target); SendMovementPacket(target); } } } if (m_didPlayerClick) { m_didPlayerClick = false; var ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; Physics.Raycast(ray, out hit); if (hit.collider != null) { var mob = hit.collider.GetComponent <Common.Mob>(); if (mob != null) { // Found a mob, walk to it and attack var mobLocation = mob.transform.position; var myLocation = this.transform.position; var dir = (mobLocation - myLocation).normalized; var target = mobLocation - dir; navAgent.SetDestination(target); SendMovementPacket(target); m_playerWalkingToAttack = true; m_mobToAttack = mob; } else { navAgent.SetDestination(hit.point); SendMovementPacket(hit.point); m_playerWalkingToAttack = false; m_playerAttacking = false; m_mobToAttack = null; } } } }