// 데이터를 받을 때 Index값도 같이 받아줌
public void GetData(ItemData data, int index)
{
// 크래프트 모드일 경우 데이터 받지 못하게 함
if (this.data != null) return;
PreviwerObject = Instantiate(data.ViewObject);
slotIndex = index;
this.data = data;
}
// 아이템 사용 시 플레이어의 inventory에서 슬롯의 index를 검색하여 Clear실행
if (Physics.Raycast(camera.transform.position, camera.transform.forward, out hitInfo, 10, layerMask))
{
if (hitInfo.transform != null)
{
PreviwerObject.transform.position = hitInfo.point;
if (creaftMode && PreviwerObject.GetComponent<MeshRenderer>().material.color == Color.green)
{
Instantiate(data.dropPrefab, hitInfo.point, Quaternion.identity);
data = null;
Destroy(PreviwerObject);
// 인벤토리의 아이템 삭제
GameManager.Instance.Player.inventory.GetSlot(slotIndex).Clear();
slotIndex = -1;
}
}
}
설명:
1. GetData()를 사용할 때 아이템 정보와 인덱스 값을 받아줌
2. 아이템 설치할 때 index를 플레이어의 인벤토리에서 슬롯의 index를 찾음
3. index의 슬롯의 메서드 Clear()를 사용하여 아이템 정보를 지움
// UICursor에 bool타입 inventory와 craft에 여부를 아는 변수 선언
public class UICursor : MonoBehaviour
{
public TextMeshProUGUI itemName;
public TextMeshProUGUI itemType;
public TextMeshProUGUI itemDec;
public bool invenCursor = false;
public bool craftCursor = false;
// 인벤UI
if (inventoryObject.activeInHierarchy)
{
GameManager.Instance.Player.cursor.invenCursor = true;
GameManager.Instance.Player.cursor.CursorCheck();
inventoryObject.SetActive(false);
GameManager.Instance.Player.cursor.gameObject.SetActive(false);
}
else
{
GameManager.Instance.Player.cursor.invenCursor = false;
GameManager.Instance.Player.cursor.CursorCheck();
inventoryObject.SetActive(true);
}
// 제작UI
if (ProduceObject.activeInHierarchy)
{
GameManager.Instance.Player.cursor.craftCursor = true;
GameManager.Instance.Player.cursor.CursorCheck();
ProduceObject.SetActive(false);
}
else
{
GameManager.Instance.Player.cursor.craftCursor = false;
GameManager.Instance.Player.cursor.CursorCheck();
ProduceObject.SetActive(true);
}
public void CursorCheck()
{
if (invenCursor && craftCursor)
{
Cursor.lockState = CursorLockMode.Locked;
}
else
{
Cursor.lockState = CursorLockMode.None;
}
}
설명: 커서UI 스크립트에 UI활성화 여부를 선택하는 변수 선언
1. 인벤토리와 크래프트의 UI활성화시 같은 변수를 true 또는 false처리
2. 활성화나 비활성화마다 CursorCheck()를 실행하여 Cursor모드를 설정함
1. 머지를 지속적으로 해줘야한다.
1. 없음
1. 없음