transform.RotateAround는 구버전으로, 사용되지 않는다.


에러가 발생하지는 않지만, 녹색으로 경고창이 뜬다.


경고는 다음과 같다.


'Transform.RotateAround(Vector3, float)' is obsolete: 'use Transform.Rotate instead.' [Assembly-CSharp]


쉽게 말하면,


transform.RotateAround은 구식이다. transform.Rotate을 대신 사용해라.



Posted by sungho88
,

public class Test01 : MonoBehaviour 

    public float testNum = 0; 


이라는 클래스가 존재한다고 할 때, testNum 변수를 어떻게 불러올까?


물론... public으로 선언되어 있다고 가정한다. 


private를 사용했거나, 아무것도 작성하지 않을 경우 모두 외부에서 보이지 않는다.



public class MainClas : MonoBehaviour 

    void Start() 

    { 

        Test01 call = GameObject.Find("Test01 컴포넌트 붙은 오브젝트").GetComponent< Test01 >(); 

        call. testNum = 5; // 접근해서 값을 수정할 수 있다. (주의해야함)

    } 


이렇게, Find()함수를 이용하여 오브젝트를 검색한 뒤, 그 오브젝트에 Test01 스크립트 컴포넌트를 불러온다.


그런뒤에 변수(call)에 저장한다.


이제, 이 변수를 이용하여 public된 함수 및 변수에 자유롭게 접근할 수 있다.

Posted by sungho88
,

게임을 개발중에 라이트와 관련된 문제를 하나 발견했다.



원래 이렇게 흰색 배경으로 프로젝트를 진행 중이었다.


그런데, 게임 오버 되서 다시 게임을 시작할때... 현재 화면 그리고 메인화면으로 이동할때...메인 화면도 


아래와 같이 뭔가 어두운 색상으로 변했다. 처음에는 라이트 적용이 안 되었다고 생각을 했다.



예상과 달리 라이트는 체크되어 있었다. 라이트 체크를 끄게 되면 다음과 같이 아예 검은색으로 변하는 것을 알았다. 



그렇다면 어떻게 흰색으로 유지할 수 있을까?


이러한 현상은 게임을 빌드해서 실행했을 경우에는 발생하지 않는다고 한다.


하지만, 개발할 때 매우 찝찝하다.


해결 방법은 다음과 같다.


상단 메뉴 - Windows - Lighting - Settings에 들어간다.



Lighting Setting 창이 열리는데, 가장 아래쪽에서 Auto Generate가 체크되어 있는 것을 볼 수 있다.


이 체크를 해제하면 옆의 Generate Lighting 버튼이 활성화가 된다.

 

이 버튼을 클릭하면 유니티 에디터에서 테스트를 진행할 때에도 빛이 제대로 들어오는 것을 확인할 수 있다.


씬이 여러개라면 해당 씬에 가서 위 작업을 반복해야 한다.



참고로, 씬이 있는 프로젝트 뷰를 보면 씬과 동일한 이름의 폴더가 생성된다.


Generate했으니...뭔가 라이트(Lighting) 관련된 설정이 담긴 폴더인 듯 하다. 


이상한 게 만들어져서 신경쓰이지만, 이 폴더를 지우게 되면 다시 원상 복귀되므로 냅둬야한다.


Posted by sungho88
,