์๋ณธ ์ ํฌ๋ธ๋ ์ด๊ฑฐ ๋ดค๊ณ
Loot.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu]
public class Loot : ScriptableObject
{
ย
ย public Sprite lootSprite;
ย public string lootName;
ย public int dropChange;
ย public Loot(string lootName, int dropChange)
ย {
ย ย this.lootName = lootName;
ย ย this.dropChange = dropChange;
ย }
}
LootBag.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LootBag : MonoBehaviour
{
ย ย public GameObject droppedItemPrefeb;
ย ย public List<Loot> lootList = new List<Loot>();
ย ย Loot GetDroppedItem()
ย ย {
ย ย ย ย ย int randomNumber = Random.Range(1,101);
ย ย ย ย ย List<Loot> possibleItems = new List<Loot>();
ย ย ย ย ย foreach ( Loot item in lootList)
ย ย ย ย ย {
ย ย ย ย ย ย if(randomNumber <= item.dropChange)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย possibleItems .Add(item);
ย ย ย ย ย ย }
ย ย ย ย ย }
ย ย ย ย ย if(possibleItems.Count > 0)
ย ย ย ย ย {
ย ย ย ย ย ย Loot droppedItem = possibleItems[ Random.Range(0,possibleItems.Count)];
ย ย ย ย ย ย return droppedItem;
ย ย ย ย ย }
ย ย ย ย ย Debug.Log("No Root Droped");
ย ย ย ย ย return null;
ย ย }
ย ย public void InstantiateLoot (Vector3 spawnPostion)
ย ย {
ย ย ย ย Loot droppedItem = GetDroppedItem();
ย ย ย ย if(droppedItem !=null)
ย ย ย ย {
ย ย ย ย ย ย GameObject lootGameObject = Instantiate(droppedItemPrefeb,spawnPostion,Quaternion.identity);
ย ย ย ย ย ย lootGameObject.GetComponent<SpriteRenderer>().sprite =droppedItem.lootSprite;
ย ย ย ย ย ย float dropForce = 300f;
ย ย ย ย ย ย Vector2 dropDirection = new Vector2(Random.Range(-1f,1f), Random.Range(-1f,1f));
ย ย ย ย ย ย lootGameObject.GetComponent<Rigidbody2D>().AddForce(dropDirection * dropForce,ForceMode2D.Impulse);
ย ย ย ย }
ย ย }
}
๋์์ ๊ฐ์๋๋ก ๋๋คํ๊ฒ ์คํ๋ผ์ดํธ ํ์ผ ๋๋ ๋๋๊ฑฐ ํ์ธํ์ต๋๋ค.
๊ทธ๋ฐ๋ฐ Loot ํ์ผ ์์ Loot Sprite ๋์ ํ๋ฆฌํน์ ๋ฃ์ด์ย
ํ๋ฆฌํน๋ค์ด ๋๋คํ๊ฒ ๋๋๋๋ ค๋ฉด ์ด๋ป๊ฒ ๊ณ ์ณ์ผ ํ๋์ง ์ข ์๋ ค์ฃผ์ธ์.
์๋ฌธ์๋ต : ์ ์ฃฝ๋ ์กฐ๊ฑด์ public List items = new List (); public void dropRandomItem () { Instantiate(items[Random.Range(0,items.Count-1)],transform.position,Quaternion.identity); } ์ถ๊ฐ ์ฐ๊ฒฐํด์ ํด๊ฒฐํจ..