using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; public class Player : MonoBehaviour { public float speed; public GameObject[] weapons; public bool[] hasWeapons; float hAxis; float vAxis; bool wDown; bool iDown; bool jDown; bool sDown1; bool sDown2; bool isJump; Vector3 moveVec; Rigidbody rigid; Animator anim; GameObject nearObject; void Awake() { rigid = GetComponent(); anim = GetComponentInChildren(); } void Update() { GetInput(); Move(); Turn(); Jump(); Swap(); Interation(); } void GetInput() { hAxis = Input.GetAxisRaw("Horizontal"); vAxis = Input.GetAxisRaw("Vertical"); wDown = Input.GetButton("Walk"); jDown = Input.GetButtonDown("Jump"); iDown = Input.GetButtonDown("Interation"); sDown1 = Input.GetButtonDown("Swap1"); sDown2 = Input.GetButtonDown("Swap2"); } void Move() { moveVec = new Vector3(hAxis, 0, vAxis).normalized; if (wDown) transform.position += moveVec * speed * 2f * Time.deltaTime; else transform.position += moveVec * speed * Time.deltaTime; anim.SetBool("isRun", moveVec != Vector3.zero); anim.SetBool("isWalk", wDown); } void Turn() { transform.LookAt(transform.position + moveVec); } void Jump() { if (jDown && !isJump) { rigid.AddForce(Vector3.up * 15, ForceMode.Impulse); anim.SetBool("isJump", true); anim.SetTrigger("doJump"); isJump = true; } } void Swap() { int weaponIndex = -1; if (sDown1) weaponIndex = 0; if (sDown2) weaponIndex = 1; if ((sDown1 || sDown2) && !isJump) { weapons[weaponIndex].SetActive(true); } } void Interation() { if(iDown && nearObject != null) { if(nearObject.tag == "Weapon") { Item item = nearObject.GetComponent(); int weaponIndex = item.value; hasWeapons[weaponIndex] = true; Destroy(nearObject); } } } void OnCollisionEnter(Collision collision) { if(collision.gameObject.tag == "Floor") { anim.SetBool("isJump", false); isJump = false; } } void OnTriggerStay(Collider other) { if (other.tag == "Weapon") nearObject = other.gameObject; Debug.Log(nearObject.name); } void OnTriggerExit(Collider other) { if (other.tag == "Weapon") nearObject = null; } }