반응형
코드 작성
플레이어 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
// 플레이어의 초기 상태 변수들
public int level = 1; // 플레이어 레벨
public int experience = 0; // 경험치
public int money = 0; // 돈
public int health = 100; // 체력
public int maxHealth = 100; // 최대 체력
// 경험치를 획득하고 레벨을 올리는 함수
public void GainExperience(int amount)
{
experience += amount;
if (experience >= level * 100) // 경험치가 충분하면 레벨업
{
experience -= level * 100;
level++;
maxHealth += 20;
health = maxHealth;
}
}
// 돈을 획득하는 함수
public void GainMoney(int amount)
{
money += amount;
}
// 체력을 회복하는 함수
public void Heal(int amount)
{
health += amount;
if (health > maxHealth)
{
health = maxHealth;
}
}
}
몬스터 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Monster : MonoBehaviour
{
// 몬스터의 초기 상태 변수들
public int health = 50; // 몬스터 체력
public int experienceReward = 20; // 처치 시 주는 경험치
public int moneyReward = 10; // 처치 시 주는 돈
// 몬스터가 공격받을 때 호출되는 함수
public void TakeDamage(int amount)
{
health -= amount;
if (health <= 0)
{
Die();
}
}
// 몬스터가 죽을 때 호출되는 함수
void Die()
{
Player player = FindObjectOfType<Player>();
player.GainExperience(experienceReward);
player.GainMoney(moneyReward);
Destroy(gameObject); // 몬스터 제거
}
}
상점 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Store : MonoBehaviour
{
public int potionCost = 10; // 포션 가격
public int potionHealAmount = 50; // 포션 회복량
// 포션을 구매하는 함수
public void BuyPotion()
{
Player player = FindObjectOfType<Player>();
if (player.money >= potionCost)
{
player.money -= potionCost;
player.Heal(potionHealAmount);
}
else
{
Debug.Log("돈이 부족합니다!"); // 돈이 부족할 때 메시지 출력
}
}
}
게임 UI 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameUI : MonoBehaviour
{
public Player player;
public Text levelText;
public Text experienceText;
public Text moneyText;
public Text healthText;
public Store store;
// UI를 업데이트하는 함수
void Update()
{
levelText.text = "레벨: " + player.level;
experienceText.text = "경험치: " + player.experience + "/" + (player.level * 100);
moneyText.text = "돈: " + player.money;
healthText.text = "체력: " + player.health + "/" + player.maxHealth;
}
// 버튼을 통해 포션을 구매하는 함수
public void OnBuyPotionButton()
{
store.BuyPotion();
}
}
다른 간단한 게임 만들기
의뢰하기
반응형