• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

회전과 쿼터니언

18.05.02 14:11 작성 조회수 115

0

오류 부분을 스크린샷으로 남겼는데...

사진파일을 못올리는 모양이네요...

회전과 쿼터니언강좌에서

public Transform targetTransform;

해서 분명이 start함수 위에 명시했는데

targetTransform이 선언되지 않았다는 식의 오류가 나왔습니다.

오타인가해서 계속 다시 확인했음에도 컴파일 오류가 나오네요.

답변 1

답변을 작성해보세요.

0

혹시 문제가 생긴 코드 전체나, 콘솔 메시지를 텍스트로 복사 붙여넣기 해주실 수 있을까요? (이미지를 업로드할 수 있는 기능은 건의하겠습니다. + 이쁘게 정렬한 답변이 제대로 출력이 안되는 것도 해결해달라고 같이 건의해야 겠네요 ㅠㅠ)
예상 가는 원인이 여러가지 있습니다만, 전체 코드가 정확한데 문제가 생기는 것인지 아닌지를 알지 못하면 정확하게 진단하기 힘듭니다.
일단 현재로서 예상되는 원인은 이렇습니다.

수정한 사항이 저장되지 않았음.

이 문제가 가장 흔합니다.
한국어 윈도우에서는 비주얼 스튜디오가 간혹 단축키가 먹히지 않는 문제가 있습니다.[Control+S]를 눌러도 저장이 안되는 경우가 있습니다.

이럴때는 저장 버튼을 수동으로 눌러 저장해야 합니다.

비주얼 스튜디오에서 수정한 사항이 유니티에 반영되지 않음.

간혹 비주얼 스튜디오에서 코드를 변경하고 저장해도, 유니티에서 변경사항을 인지하지 못하고 컴파일 하지 않을때가 있습니다.
그럴때는 아래와 같은 방법들중 하나 이상을 시도해봅니다.
유니티 상단메뉴에서 해당 버튼들을 확인할 수 있습니다.

1번: Assets > Open C# Project 를 통해 유니티 C# 프로젝트 전체를 비주얼 스튜디오 측에서 재로드
2번: 유니티 스크립트를 열어둔 비주얼 스튜디오에서 [Build] > [Rebuild Solution] 클릭 (한국어로는 [빌드] > [솔루션 다시빌드하기])
3번: Assets > Reimport All 을 통해 유니티 프로젝트의 애셋과 스크립트 전체를 다시 임포트 & 컴파일
4번: 유니티를 종료하고 프로젝트를 다시 열어보기

다른 스크립트의 오류로 현재 스크립트의 수정사항이 반영되지 않음.

해당 비디오는 단일 스크립트만 사용하기에 이 문제일 확률은 낮지만 언급해둡니다.
프로젝트에서 A와 B 스크립트 모두 잘못 작성하였다고 가정해 봅니다.
이때, A 스크립트의 문제를 수정하여도, B 스크립트의 문제 때문에 A 스크립트의 문제가 '전혀' 수정되지 않은 것으로 콘솔에 에러가 표시될때가 간혹 있습니다.

1 - A와 B 스크립트 모두 문법 오류 등의 문제가 있습니다.

2 - A 스크립트를 올바르게 수정합니다.

3 - 하지만 B 스크립트의 오류로 인해 유니티가 수정사항을 받아들이고 컴파일하는 과정이 멈춰있습니다.

4 - 콘솔에는 여전히 A 스크립트 문제가 있다고 뜹니다.

이렇게 표시되는 이유는 유니티가 "마지막"으로 기억하고 있는 시점은 A에 문제가 있었던 시점이기 때문입니다.
심지어 처리 순서가 꼬여서 A에는 문제가 없고, B에 문제가 있는데, B에 관한 문제가 콘솔에 에러로 출력되지 않고 이미 수정했던 A에 관한 문제만 콘솔에 에러로 표시될 때가 있습니다.
이것을 해결하려면, 콘솔에는 출력되지 않았지만, 다른 스크립트에서 오타 등을 쳤는지 확인해야 합니다.

targetTransform에 대한 레퍼런스가 할당되지 않음.

targetTransform이 선언되지 않았다는 에러가 나왔으므로, 이것이 원인일 확률은 적지만 일단 언급 해둡니다. (만약 이런 종류의 문제였다면 선언이 되어 있지 않다는 에러가 아니라 targetTransform이 NULL이라는 에러가 뜨겠지요)
이 경우에는 인스펙터 창에서 targetTransform 필드에 다른 게임 오브젝트의 트랜스폼을 드래르&드롭 하지 않았을 수 있습니다.