.
This commit is contained in:
65
Assets/Scripts/BluePlayerController.cs
Normal file
65
Assets/Scripts/BluePlayerController.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
public class BluePlayerController : MonoBehaviour
|
||||
{
|
||||
public GameObject shield;
|
||||
|
||||
public GameObject bulletPrefab;
|
||||
public Transform firePoint;
|
||||
|
||||
public float shootCooldown = 0.5f;
|
||||
|
||||
private float cooldownTimer;
|
||||
|
||||
private bool isDead = false;
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (Keyboard.current == null)
|
||||
return;
|
||||
|
||||
if (isDead)
|
||||
return;
|
||||
|
||||
cooldownTimer -= Time.deltaTime;
|
||||
|
||||
HandleShield();
|
||||
HandleShoot();
|
||||
}
|
||||
|
||||
void HandleShield()
|
||||
{
|
||||
// Giữ F => bỏ khiên
|
||||
bool holdingF =
|
||||
Keyboard.current.fKey.isPressed;
|
||||
|
||||
shield.SetActive(!holdingF);
|
||||
}
|
||||
|
||||
void HandleShoot()
|
||||
{
|
||||
|
||||
|
||||
// Chỉ bắn khi đang bỏ khiên
|
||||
if (!shield.activeSelf &&
|
||||
Keyboard.current.gKey.wasPressedThisFrame &&
|
||||
cooldownTimer <= 0f)
|
||||
{
|
||||
Instantiate(
|
||||
bulletPrefab,
|
||||
firePoint.position,
|
||||
firePoint.rotation
|
||||
);
|
||||
|
||||
cooldownTimer = shootCooldown;
|
||||
}
|
||||
}
|
||||
|
||||
public void Die()
|
||||
{
|
||||
isDead = true;
|
||||
|
||||
GameManager.Instance.ShowWinner("RED WIN!");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user