//Default Value in Inspector void Reset() { m_XAxis = 0; m_YAxis = 0; m_PlayerDirection = E_PlayerDirection.Down; m_PlayerType = E_PlayerType.Warrior; m_PlayerSpeed = 5f; m_CurrentRunSpeed = 0f; m_IsDead = false; m_IsMoving = false; m_CanMove = true; m_PlayerRigidbody = GetComponent <Rigidbody2D>(); m_Warrior = GameObject.Find("Warrior"); m_Warrior.SetActive(true); m_PlayerAnimator = m_Warrior.GetComponent <Animator>(); m_Mage = GameObject.Find("Mage"); m_Mage.SetActive(false); m_PlayerRigidbody.gravityScale = 0; m_IsAttacking = false; }
public Character(E_PlayerType character, int posIndex)//每次扔色子之后都重新初始化一遍,所以不可以定死posindex是0 { this.character = character; this.posIndex = posIndex; isPause = false; }
// Update is called once per frame void Update() { GameObject.Find("Warrior Health").GetComponent <TextMeshProUGUI>().SetText("Warrior Health: " + m_WarriorHealth); GameObject.Find("Mage Health").GetComponent <TextMeshProUGUI>().SetText("Mage Health: " + m_MageHealth); if (m_MageHealth == 0 || m_WarriorHealth == 0) { GameObject.Find("Losing Text").GetComponent <TextMeshProUGUI>().enabled = true; Time.timeScale = 0; } switch (m_PlayerType) { case E_PlayerType.Mage: m_PlayerAnimator = m_Mage.GetComponent <Animator>(); if (Input.GetKeyDown(KeyCode.X)) { m_PlayerType = E_PlayerType.Warrior; m_Warrior.SetActive(true); m_Mage.SetActive(false); } break; case E_PlayerType.Warrior: m_PlayerAnimator = m_Warrior.GetComponent <Animator>(); if (Input.GetKeyDown(KeyCode.X)) { m_PlayerType = E_PlayerType.Mage; m_Warrior.SetActive(false); m_Mage.SetActive(true); } break; } transform.position += Vector3.zero; if (m_CanMove == true) { m_XAxis = Input.GetAxisRaw("Horizontal"); m_YAxis = Input.GetAxisRaw("Vertical"); m_PlayerAnimator.SetFloat("XInput", m_XAxis); m_PlayerAnimator.SetFloat("YInput", m_YAxis); m_PlayerAnimator.SetBool("IsAttacking", IsAttacking); if (Input.GetKeyDown(KeyCode.Space) && IsMoving == false) { StartCoroutine("Attack"); } switch (m_PlayerDirection) { case E_PlayerDirection.Down: m_PlayerAnimator.SetBool("FaceDown", true); m_PlayerAnimator.SetBool("FaceUp", false); m_PlayerAnimator.SetBool("FaceLeft", false); m_PlayerAnimator.SetBool("FaceRight", false); break; case E_PlayerDirection.Up: m_PlayerAnimator.SetBool("FaceUp", true); m_PlayerAnimator.SetBool("FaceDown", false); m_PlayerAnimator.SetBool("FaceLeft", false); m_PlayerAnimator.SetBool("FaceRight", false); break; case E_PlayerDirection.Left: m_PlayerAnimator.SetBool("FaceLeft", true); m_PlayerAnimator.SetBool("FaceUp", false); m_PlayerAnimator.SetBool("FaceDown", false); m_PlayerAnimator.SetBool("FaceRight", false); break; case E_PlayerDirection.Right: m_PlayerAnimator.SetBool("FaceRight", true); m_PlayerAnimator.SetBool("FaceUp", false); m_PlayerAnimator.SetBool("FaceLeft", false); m_PlayerAnimator.SetBool("FaceDown", false); break; } //Set Direction #region SetDirection if (m_XAxis > 0) { m_PlayerDirection = E_PlayerDirection.Right; } else if (m_XAxis < 0) { m_PlayerDirection = E_PlayerDirection.Left; } else if (YAxis < 0) { m_PlayerDirection = E_PlayerDirection.Down; } else if (YAxis > 0) { m_PlayerDirection = E_PlayerDirection.Up; } #endregion if (Mathf.Abs(m_XAxis) > 0 || Mathf.Abs(YAxis) > 0) { m_IsMoving = true; m_PlayerAnimator.SetBool("IsMoving", m_IsMoving); } else { m_IsMoving = false; m_PlayerAnimator.SetBool("IsMoving", m_IsMoving); } m_PlayerRigidbody.velocity = new Vector2(m_XAxis * m_PlayerSpeed, m_YAxis * m_PlayerSpeed); } }