Unity code snippet, tip(?)

유니티3D(Unity3D 5기준)를 접하면서 알게되는 짦막한 코드들을 정리할 예정입니다.
유니티 공부해야지 해야지 하다가 이제서야 시작하게 되어 조금 늦은감이 있긴 하지만, 재미는 있네요.
코드들 보다는 유니티 동영상 강좌 등을 보는게 훨씬 공부하는데 도움이 됩니다. 다른 언어나 프레임워크보다 특히나 유니티는 더 그렇네요. 코드만으로 해결할 수 없는 것들이 너무 많아요.

GameObject 보이기/감추기 / GameObject.SetActive(true/false)

간단하게 SetActive function 을 통해 보여주고, 감출 수 있습니다.

 

실행 지연하기 / WaitForSeconds

유니티에서 특정 코드의 실행을 지연시키기 위해 사용합니다.
StartCoroutine function 을 사용해야하기 때문에 MonoBehaviour 를 상속한 클래스에서 사용할 수 있습니다. ScriptableObject 에서는 못씀

 

GameObject 알파값, 컬러 변경하기 / Renderer.Color

제 경우에는 fade in, fade out 에 사용하기 위해 알파값을 변경했습니다. (동영상파일 링크 – fadeout)
예전의 예제를 보면 GameObject 에서 곧바로 renderer 를 사용하도록 하는 코드들이 많은데 언제부터인지 모르겠지만 GameObject 의 각 Component 들에 직접 접근이 안되도록 변경된것 같습니다.
아래 예시는 알파값(투명도)만 변경했지만, 실제로는 컬러 전체를 변경하는 코드입니다.
color.a = …; 과 같은 식으로 작성하고 싶었지만, 변경할 수 없도록 설정이 되어있네요. 각 필드들이 immutable 인것 같습니다. 그래서 color 자체를 변경합니다.

 

AnimatorController 변경하기 / RuntimeAnimatorController

Runtime 에 AnimatorController 를 지정하거나 변경할 때 사용한 코드입니다.

  1. 애니메이션과 애니메이터 컨트롤러는 기존에 생성되어있다고 가정합니다.
  2. 또 여기서 사용하게 될 AnimatorController 들은 Resources 폴더에 있다고 가정합니다.
  3. 당연하지만 Resources 폴더는 Assets 밑에 위치합니다.
  4. Resources 내에 폴더를 나누었다면, …Load(“folderName/ControllerName”) 으로 사용합니다.

 

씬 전환하기 / Scene transition, Application.LoadLevel

Application.LoadLevel(string or index) 로 씬을 전환하기 위해서는 Build Settings 에 씬이 추가되어 있어야 합니다. 현재 선택된 씬을 Add Current 버튼으로 빌드에 추가할 수 있습니다.
Scenes In Build 에 선택한 씬이 추가되었다면, 오른쪽에 숫자가 보이게 됩니다. 이 숫자로 불러올 수 있습니다.
전 숫자가 편해서 숫자로 썼지만, 이름으로도 불러 올 수 있습니다.

Build Settings

 

uGUI 화면 크기에 맞게 스케일하기

게임 오브젝트 생성하기 / GameObject Instantiate

터치 입력받기 / Input.GetTouch & Input.mousePosition, ScreenToWorldPoint