






Preview text:
Đồ án: Tương tác đối tượng ảo
Họ tên : Nguyễn Thùy Linh
Lớp: TH28.35
MSV; 2823156641
Nhân vật



Chướng ngại vật



Thiết kế Player trên Unity

Code
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
[SerializeField] private float jumpForce = 15f;
private Rigidbody2D rb;
private bool isGrounded;
[SerializeField] private Transform groundCheck;
[SerializeField] private float groundCheckRadius = 0.2f;
[SerializeField] private LayerMask groundLayer;
private Animator anim;
[SerializeField] private BoxCollider2D normalCollider;
[SerializeField] private CapsuleCollider2D duckCollider;
void Start()
{
rb = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
normalCollider.enabled = true;
duckCollider.enabled = false;
}
void Update()
{
isGrounded = CheckIfGrounded();
HandleJump();
HandleDuck();
}
private bool CheckIfGrounded()
{
return Physics2D.OverlapCircle(
groundCheck.position,
groundCheckRadius,
groundLayer
);
}
private void HandleJump()
{
if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
{
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
}
}
private void HandleDuck()
{
if (Input.GetKey(KeyCode.DownArrow))
{
normalCollider.enabled = false;
duckCollider.enabled = true;
anim.SetBool("isDuck", true);
}
else
{
normalCollider.enabled = true;
duckCollider.enabled = false;
anim.SetBool("isDuck", false);
}
}
private void OnDrawGizmosSelected()
{
if (groundCheck == null) return;
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(groundCheck.position, groundCheckRadius);
}
}




