ecsimsw

Gizmos / Serialized / Debug 본문

Gizmos / Serialized / Debug

JinHwan Kim 2019. 2. 7. 04:49

Gizmos / Serialized / Debug

- 스크립트 내의 private 변수를 게임 실행 중 확인하거나, Mesh가 없는 게임 오브젝트를 씬 뷰에서 확인하여 보다 효율적으로 유니티를 활용하는 방법을 공부하였다.
  • Debug Mode
    - 인스펙터에서 Debug로 모드를 전환하는 것으로 게임 중 오브젝트 안 스크립트의 private 변수를 활용할 수 있다.

  • Serialized
    - 객체의 데이타를 연속적인 데이터로 변환하는 것으로, 파일이나 DB에 저장하거나 웹서비스 등으로 네트워크 상으로 전송하는 것을 Serialization이라 한다.
      내부적으로 프리팹은 게임 오브젝트와 컴포넌트를 Serialize된 데이터 스트림이다. 이 프리팹이 인스턴스 됐을 때, 새로운 오브젝트에 deSerialize 되는 것이다. (직렬화는 더 자세히 공부 후 따로 포스팅 하겠다.)
    [SerializeField] private int secret = 100;
      이 직렬화를 이용해서 private 데이터를 Inspector에 표시하고, 게임 실행 중 변화를 확인할 수 있다. 위처럼 원하는 변수에 SerializedField 속성을 사용하는 것으로 노출이 가능해진다.

  • Gizmos
    - 기즈모는 씬 뷰에서 게임 오브젝트와 연관된 그래픽스이다. 대표적으로 Camera Gizmo와 light direction Gizmo가 있다.
      Mesh가 없는 오브젝트, 특히 Empty 오브젝트를 사용해야할 경우, Gizmo를 사용하면 게임 뷰에는 보이지 않지만 씬 뷰에서는 그래픽으로 보여져 더 다루기 쉽도록 할 수 있다.
    "MyGizmos" using UnityEngine; using System.Collections; public class MyGizmos : MonoBehaviour { void OnDrawGizmos() { // Draw a yellow sphere at the transform's position Gizmos.color = Color.yellow; Gizmos.DrawSphere(transform.position, 1); } }
      위 예제처럼 OnDrawGizmos 함수를 이용해서 적용된 오브젝트의 씬 그래픽의 위치와 모양, 색을 결정할 수 있다.

'Etc > Unity' 카테고리의 다른 글

Scale Factor / Uniform Scale/ Collider capability  (0) 2019.02.08
Trail renderer / Particle system  (0) 2019.02.08
Light / Shadow  (0) 2019.02.06
Local Coordinate  (0) 2019.02.04
Vector3  (0) 2019.02.04
Comments