99 lines
1.9 KiB
C#
99 lines
1.9 KiB
C#
|
|
using System.Collections;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using Unity.VisualScripting;
|
||
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
public class Player : MonoBehaviour
|
||
|
|
|
||
|
|
{
|
||
|
|
public float speed;
|
||
|
|
float hAxis;
|
||
|
|
float vAxis;
|
||
|
|
bool wDown;
|
||
|
|
bool iDown;
|
||
|
|
bool jDown;
|
||
|
|
|
||
|
|
bool isJump;
|
||
|
|
|
||
|
|
|
||
|
|
Vector3 moveVec;
|
||
|
|
|
||
|
|
Rigidbody rigid;
|
||
|
|
Animator anim;
|
||
|
|
|
||
|
|
GameObject nearObject;
|
||
|
|
|
||
|
|
void Awake()
|
||
|
|
{
|
||
|
|
rigid = GetComponent<Rigidbody>();
|
||
|
|
anim = GetComponentInChildren<Animator>();
|
||
|
|
}
|
||
|
|
|
||
|
|
void Update()
|
||
|
|
{
|
||
|
|
GetInput();
|
||
|
|
Move();
|
||
|
|
Turn();
|
||
|
|
Jump();
|
||
|
|
}
|
||
|
|
|
||
|
|
void GetInput()
|
||
|
|
{
|
||
|
|
hAxis = Input.GetAxisRaw("Horizontal");
|
||
|
|
vAxis = Input.GetAxisRaw("Vertical");
|
||
|
|
wDown = Input.GetButton("Walk");
|
||
|
|
jDown = Input.GetButtonDown("Jump");
|
||
|
|
}
|
||
|
|
|
||
|
|
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 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;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|