Đồ á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);
}
}

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);

}

}