ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024.3.14
    TIL 2024. 3. 14. 21:01

    오늘은 추가적인 부분을 했습니다.

     

    문제는 해상도에 따라서 배경이나 UI가 크게 변하면 안되기 때문에 배경이나 button부분을 UI로 만들어주었는데요.

    이렇게 되면 Item을 2D Object로 만들어서 UI에 가려서 Item이 보이지 않는 상황이 되었습니다.

    우선 작업을 하고 추후에 UI앞으로 object를 두는 것을 찾으려고 했는데

    방법은 UI의 Render Mode를 World Space로 두면 되는 것입니다.

    이렇게 되면 화면의 비율을 바꾸게 되면 정상적으로  화면이 이상해지는 일이 발생하게 됩니다...

     

    그래서 2D Object로 만들었던 아이템 Prefab을 UI Image로 바꾸는 작업을 해주게 되었습니다.

     

    오류는 당연히 발생했습니다.

    먼저, 아이템을 Instantiate해줄 때 Image를 바꿔줘야하는데 

    'Image'가 MonoBehavior 또는 Component에서 파생되거나 인터페이스여야 합니다.

    ArgumentException: GetComponent requires that the requested component 'Image' derives from MonoBehaviour or Component or is an interface.

    라는 오류가 발생했습니다.

     

    제대로 받아오는 것이 확인되었지만 먼가의 이유로 안되고 있었는데 확인해보니 namespace가 일치하지 않았기 때문입니다.

    Image의 namespace는 UnityEngine.UI 이지만 사용하고 있던 using이 UnityEngine.UIElements로 되어있었기 때문에 GetComponent<Image>()에서 오류가 발생했던 것입니다.

     

    추가적으로

    obj.transform.GetComponent<Image>().sprite = Resources.Load<Sprite>("image");

    로 적는 것보다

     

    Sprite sprite = Resources.Load<Sprite>("image");
    
    obj.transform.GetComponent<Image>().sprite = sprite;

    로 적는 것이 좋습니다.

    이유는 Resources.Load를 할 경우 string이 Resources에 있는 파일명 그대로 적어야지 가져올 수 있는데, 협업이나 어떠한 이유로 불러오던 파일명이 변경될 경우 가져올 수 없으므로

    sprite를 가져오지 못할 경우 Debug.Log를 할 수 있도록 해주는 것이 좋습니다.

     

    우선 이미지에 관한 오류는 해결이 되었으며, 생성된 아이템을 한번 더 누를 경우 애니메이션이 작동되어야하는 부분도 오류가 생겨서 수정을 해줘야합니다..

    에흉

     


     

    오늘의 기술 면접 질문

     

    7. 가비지 컬렉션이란 무엇인지 설명해주세요.

    가비지 컬렉션은 가비지 컬렉터가 가비지를 처리하는 과정을 의미합니다.

     

    오늘까지 3일에 걸쳐서 GC에 관한 내용을 정리했습니다. 가비지 컬렉션에 대해서는 어제 가비지 컬렉터 회피 전략에 대해서 작성하면서 찾아봤기 때문에 빠르게 작성할 수 있었던 것 같습니다. 

     


     

    내일은 추가적으로 생긴 오류 수정하고 퍼즐요소를 추가해보려고 합니다.

    내일의 나 화이팅!

     

    'TIL' 카테고리의 다른 글

    2024.3.26  (0) 2024.03.26
    2024.3.15  (0) 2024.03.15
    2024.3.13  (4) 2024.03.13
    2024.3.12  (0) 2024.03.12
    2024.3.11  (0) 2024.03.11
Designed by Tistory.