2024-05-24

이재형·2024년 5월 24일
0
post-thumbnail
post-custom-banner

시작하기에 앞서

팀 프로젝트가 끝나고 다음 조와 새로운 만남을 갖는 시간이다. 물론 처음 주차에는 개인 프로젝트를 특강과 함께 진행이 되기 때문에 팀 프로젝트를 하지 않지만 잘 맞는 팀원과 만났으면 좋겠다.

Unity 공부

배운 내용

1. InputSystem의 키 변경

// 1번
if (spaceAction.bindings[0].path == "<Keyboard>/space")
{
    // 바인딩 오버라이드를 적용합니다.
    spaceAction.ApplyBindingOverride(0, "<Keyboard>/escape");
}

// 2번
// 기존 바인딩을 비활성화하고 새 키로 재바인딩
        spaceAction.ChangeBinding(0)
                   .WithPath("<Keyboard>/escape");

설명: 1번의 경우에는 해당 action에 있는 bindings에 해당 키 값을 찾아서 변경을 해주는 반면에 2번의 경우에는 새 키로 바로 재바인딩을 해주는데 상황에 따라서 선택해서 사용하는 방법이 다를 것이다.


2. 싱글톤 상속화로 활용

// 1번
private static T instance;

public static T Instance
{
    get
    {
        // get instance of singleton
        if (instance == null)
        {
            GameObject obj;
            // 오브젝트에 해당 제네릭 타입을 가진 오브젝트를 찾음
            obj = GameObject.Find(typeof(T).Name);
            if (obj == null)
            {
                // 없으면 새로 만들어서 추가를 함
                obj = new GameObject(typeof(T).Name);
                instance = obj.AddComponent<T>();
            }
            else
            {
                // 있다면 해당 오브젝트의 제네릭 컴포넌트를 추가함
                instance = obj.GetComponent<T>();
            }
        }
        return instance;
    }
}

// 2번
private static T instance;

    public static T Instance
    {
        get
        {
            if (instance == null)
            {
                instance = (T)FindObjectOfType(typeof(T));

                if (instance == null)
                {
                    GameObject singletonObject = new GameObject();
                    instance = singletonObject.AddComponent<T>();
                }
            }
            return _instance;
        }
    }

**설명: 1번의 경우에는 오브젝트를 찾아서 해당 instance를 초기화 해주지만 2번의 경우에는 해당 제네릭 타입을 검색 하여 초기화를 해주는 방식을 나뉜다.
1번의 경우에는 오브젝트를 찾아서 하지만 2번의 경우에는 상속해서 바로 쓸수 있으므로 2번의 경우를 사용하여 상속으로 싱글톤을 생성할 것 같음


3. 개발 오류

  • 런타임 오류: 실행중에 발생하는 오류로 연산, 배열 인덱스, 형식 오류에서 발생한다. [예시: apple(null) is a fruit]
  • 논리 오류: 문법적으로 문제는 없지만 의도와 다르게 다른 결과를 출력할 때 발생한다. [예시: apple is a animal]
  • 컴파일 에러: 컴파일 단계에서 나오는 에러로 문법오류나 변수 선언 문제에서 발생한다. [예시: aple is a fruit]
  • 예외: 프로그램 실행 중에 예기치 않은 상황에서 발생한다. Try catch로 처리

정리

배운 내용

1. InputSystem의 키 변경: InputSystem을 이용하여 키를 변경하는 옵션을 추가하여 후에 게임 개발에 활용을 할 수 있을 것이다.
싱글톤 상속화로 활용: 싱글톤을 여러 생성할 일이 생길 때 미리 생성하여 편하게 상속하여 사용 해야겠음
개발 오류: 4가지의 오류를 적었지만 그 안에 많은 오류들이 있기 때문에 많이 겪으며 오류에 대해 배워야겠다.

해결 못한 문제

1. 없음

문제점

1. 없음

끝 마치며...

조가 바뀌었는데 1분이 병원으로 인하여 참가를 하지 못한게 아쉬웠는데 월요일부터 오신다고 하니 회의하면서 서로 친해졌으면 좋겠다.

profile
한국사람
post-custom-banner

0개의 댓글