Untitled
unknown
plain_text
10 days ago
2.4 kB
3
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