Untitled
unknown
plain_text
8 months ago
2.4 kB
8
Indexable
using UnityEngine;
using UnityEngine.UI;
public class BattleRoyaleGame : MonoBehaviour
{
public CharacterController player;
public Transform firePoint;
public GameObject bulletPrefab;
public GameObject[] enemies;
public Text healthText;
public Text winText;
private float moveSpeed = 5f;
private float bulletSpeed = 20f;
private int playerHealth = 100;
private float enemySpeed = 2f;
void Update()
{
HandleMovement();
HandleShooting();
EnemyAI();
UpdateUI();
CheckGameStatus();
}
void HandleMovement()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 move = new Vector3(h, 0, v);
player.SimpleMove(move * moveSpeed);
if (move != Vector3.zero)
player.transform.rotation = Quaternion.LookRotation(move);
}
void HandleShooting()
{
if (Input.GetButtonDown("Fire1"))
{
GameObject bullet = Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
bullet.GetComponent<Rigidbody>().velocity = firePoint.forward * bulletSpeed;
Destroy(bullet, 3f);
}
}
void EnemyAI()
{
foreach (GameObject enemy in enemies)
{
if (enemy != null)
{
Vector3 dir = player.transform.position - enemy.transform.position;
dir.y = 0;
enemy.transform.position += dir.normalized * enemySpeed * Time.deltaTime;
enemy.transform.rotation = Quaternion.LookRotation(dir);
if (Vector3.Distance(enemy.transform.position, player.transform.position) < 1.5f)
playerHealth -= 1;
}
}
}
void UpdateUI()
{
if (healthText != null)
healthText.text = "Health: " + playerHealth;
}
void CheckGameStatus()
{
if (playerHealth <= 0)
{
winText.text = "You Died!";
Time.timeScale = 0;
}
else if (AllEnemiesDown())
{
winText.text = "Victory!";
Time.timeScale = 0;
}
}
bool AllEnemiesDown()
{
foreach (GameObject enemy in enemies)
if (enemy != null) return false;
return true;
}
}Editor is loading...
Leave a Comment