해결된 질문
작성
·
125
·
수정됨
답변 2
0
안녕하세요! BurningCarrot입니다. 문의해 주신 내용에 답변 드립니다.
일단 OnClickInventoryItemSlot 함수에서 선택 강조 효과를 활성화 해주면서 선택한 아이템의 SerialNumber값을 InventoryUI에 m_SelectedSerialNumber와 같은 변수에 저장해 줍니다. 당연히 InventoryUI에 m_SelectedSerialNumber 변수 선언이 필요합니다.
그리고 UpdateData(InfiniteScrollData scrollData) 함수에서 InventoryUI의 m_SelectedSerialNumber 값이 m_InventoryItemSlotData.SerialNumber와 같으면 선택 강조 효과 활성화 그렇지 않으면 비활성화 해주시면 될 것 같습니다.
이렇게 하면 InventoryItemSlot 오브젝트가 재활용될 때 선택 강조 효과 처리가 정상적으로 될 것입니다.
0
안녕하세요, 인프런 AI 인턴입니다. 공부하자님.
인벤토리 스크롤 영역에서 선택한 아이템을 강조하는 효과를 구현하는 방법에 대해 설명드리겠습니다.
선택한 아이템을 강조하는 일반적인 방법은 선택된 아이템의 배경색이나 테두리 색상을 변경하거나, 추가적인 강조 이미지를 활성화하는 것입니다. 아래의 단계를 통해 구현할 수 있습니다.
selectedItem
변수를 사용하여 현재 선택된 아이템을 저장할 수 있습니다. private GameObject selectedItem = null;
public void OnItemClick(GameObject item)
{
// 이전에 선택된 아이템의 강조 해제
if (selectedItem != null)
{
DeselectItem(selectedItem);
}
// 새로 선택된 아이템 강조
SelectItem(item);
selectedItem = item;
}
private void SelectItem(GameObject item)
{
// 강조 효과 적용 (예: 배경색 변경, 테두리 추가 등)
item.GetComponent<Image>().color = Color.yellow; // 예시로 배경색을 노란색으로 변경
}
private void DeselectItem(GameObject item)
{
// 강조 효과 해제
item.GetComponent<Image>().color = Color.white; // 기본 배경색으로 변경
}
void OnEnable()
{
if (selectedItem == gameObject)
{
SelectItem(gameObject);
}
else
{
DeselectItem(gameObject);
}
}
관련된 기존 답변들도 참고해보시면 도움이 될 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
코드를 따라해본건 아니지만 AI답변은 원하는 결과가 나오지 않을듯 하네요.
스크롤 영역에 노출되고 있는 오브젝트에 대한 처리가 제대로 안될것 같아요.
내가 선택한 아이템이 있고 현재 보이는 스크롤 영역에 다른 아이템을 누르면 기존 아이템 선택 해제는 안될것 같아서요.
안녕하세요.
말씀 주신 방법으로는 스크롤을 진행해야 제대로 업데이트 처리가 가능해 현재 보여지고 있는 아이템들은 업데이트를 따로 해주어야 하는데요
그래서 sort강의를 참고해서 갱신하려고 했지만 해당 방법이 아닌것 같아 다른 방법을 사용했습니다.
사용 후 원하는 결과가 나오지만
TLS Allocator ALLOC_TEMP_TLS라는 오류 메시지가 계속 나와 적절치 않은 방법인가 했는데
이 오류는 다른 방법으로 해결이 되네요.
일단 이렇게 해결이 가능하니 질문은 종료하겠습니다.
답변 달아주셔서 감사합니다~