유니티(Unity) 트랜스폼 회전 관련 함수 모음(Transform.Rotate, Transform.LookAt, 기타)Transform.Rotate게임 오브젝트를 회전시키는 데 사용되는 함수. 회전에 오일러 각도(euler Angles)를 사용하며 회전의 축을 월드(world) 또는 로컬(local)로 지정할수있습니다. https://docs.unity3d.com/ScriptReference/Transform.Rotate.htmlRotate(Vector3 eulerAngles); 축(X, Y, Z)에 대해 회전할 각도를 포함한 Vector3를 사용 Rotate(new Vector3(30, 0, 0))은 X축을 기준으로 30도 회전 Rotate(float xAngle, float yAngle, float..
유니티에서 프리팹(Prefab) 사용하기(프리팹생성, apply, select, revert) 씬에서 여러번 재사용되는 게임 오브젝트를 프리팹으로 만들고 사용하는 방법(apply, select, revert) 1)씬에 empty 게임오브젝트를 생성하고(player) 하위에 큐브 오브젝트 두개를 구성합니다. 2)이 게임 오브젝트(player)의 프리팹 에셋을 생성하려면 해당 게임 오브젝트를 선택하고 프로젝트(project) 윈도우의 에셋(Assets) 폴더로 드래그, 드롭합니다. 에셋 폴더에 프리팹 에셋이 생성된것을 확인할수있으며 씬에 존재하는 해당 프리팹 게임 오브젝트는 파랑으로 표시됩니다(Hierarchy) 3)씬의 프리팹 오브젝트를 복사합니다. 씬(hierarchy)에 존재하는 프리팹 오브젝트의 속성..
유니티(Unity) 실습 예제 - 총알을 발사하는 씬 구성하기 1)씬에 새로운 큐브(cube) 오브젝트를 생성하고 바닥(Ground)과 벽(Wall)을 구성합니다. 2)총알로 사용할 3D 모델을 프로젝트에 가져오기(import)하고 씬에 오브젝트를 추가합니다(Bullet) 3)총알 모델의 오브젝트 로컬(local) 축을 확인합니다. z축이 모델의 측면 방향으로 설정되어있는것을 확인할수있습니다. 4)새로운 게임 오브젝트를 생성합니다(create empty) 5)총알 모델의 오브젝트(Bullet)를 GameObject의 자식 오브젝트로 설정하고 위치(position)를 초기화합니다(0, 0, 0) 6)총알 모델의 앞 방향이 GameObject의 z축 방향과 일치하도록 회전시킵니다. 7)GameObject이 ..
유니티 실습 예제 공굴리기 게임 만들기2 (아이템 프리팹 설정, 아이템 획득, 획득 개수 업데이트, UI 텍스트 표시) 1)씬에 cube 오브젝트를 생성합니다(Pick_up) 2)Pick_up 오브젝트를 프리팹(prefab)으로 설정합니다. 3)프리팹의 오브젝트(Pick_up)를 다중 복사하고 위치를 설정합니다. 새로운 게임 오브젝트(empty gameobject)를 생성하고 복사한 오브젝트들의 부모 오브젝트로 설정합니다. 4)Pick_up 오브젝트의 재질을 설정합니다. 5)인스펙터(inspector) 패널의 tag에서 add tag로 이동합니다. 6)+를 클릭하고 새로운 태그 이름을 입력하고 save를 클릭합니다. 7)씬에서 Pick_up 오브젝트를 선택하고 새로 추가한 태그를 설정합니다(P_u) pr..
유니티 실습 예제 공굴리기 게임 만들기1 (플레이어 방향키 이동 설정, 카메라 이동 설정) 1)씬에 sphere, plane 게임 오브젝트를 생성합니다(player, ground) 2)새로운 재질을 생성하고 ground에 할당합니다. 3)플레이어(player)에 리지드바디(rigidbody) 컴포넌트를 추가합니다. 4)상단의 edit 메뉴에서 project settings의 input으로 이동합니다. 5)Horizontal, Vertical 축에 대한 입력이 좌우 및 상하 방향 키로 설정되어있는것을 확인할수있습니다. 6)플레이어(player)에 새로운 사용자 스크립트를 추가합니다(PlayerController) 7)사용자 스크립트를 작성합니다. 게임을 플레이하고 방향 키를 입력하면 플레이어(player)..
유니티 webGL 프로젝트 사용자 템플릿(templates) 설정하기 https://docs.unity3d.com/Manual/webgl-templates.html 1)유니티에서 webGL프로젝트를 빌드하고 브라우저에서 실행하면 일반적으로 아래와 같은 기본 템플릿을 확인할수있습니다. 2)project settings의 player에서 resolution and presantation로 이동합니다. webGL template에. default 템플릿으로 설정되어있는것을 확인할수있습니다. 3)새로운 사용자 템플릿을 프로젝트에 가져오기합니다. 예에서 아래 웹사이트의 프로젝트 템플릿을 다운로드 및 가져오기하였습니다(웹페이지에서 전체화면으로 게임을 실행하는 템플릿) https://github.com/greggma..
유니티에서 직렬화 가능 유형 https://docs.unity3d.com/kr/530/ScriptReference/SerializeField.html 공용 비정적 필드(public nonstatic fields)를 직렬화할수 있습니다(직렬화 가능 유형, serializable types) [SerializeField] 속성으로 표시된 비공용 비정적 필드(nonpublic nonstatic fields)를 직렬화할수 있습니다. 정적 필드(static fields)를 직렬화할수 없습니다. 속성(properties)을 직렬화할수 없습니다. 직렬화 가능 유형(serializable types) UnityEngine.Object에서 상속되는 모든 클래스(GameObject, Component, MonoBehavi..
유니티에서 인스펙터 Debug mode 활성화하기 디버그 모드(Debug mode)를 활성화하면 인스펙터에서 해당 클래스의 속성과 값을 표시합니다. https://docs.unity3d.com/Manual/InspectorOptions.html Normal mode 1)일반 모드(Normal)에서는 컴포넌트의 속성에 대한 편집기로 구성된 인스펙터를 확인할수있습니다. Debug mode 2)인스펙터의 우측 상단에 표시한곳을 클릭하고 debug를 선택합니다. 3)디버그 모드(Debug mode)에서는 컴포넌트의 속성과 값을 표시하는것을 확인할수있습니다. 4)디버그 모드에서는 private으로 선언한 멤버 변수를 인스펙터에서 표시합니다.
유니티에서 SerializeField 속성 사용하기(비공개 필드 직렬화) 일반적으로 유니티가 스크립트 컴포넌트를 직렬화할때 public 필드만 직렬화합니다. private으로 선언한 변수는 인스펙터(inspector)에서 표시하지않습니다. private으로 선언한 변수 또는 비공개 필드를 직렬화하려면 SerializeField 속성을 추가합니다. [SerializeField] https://docs.unity3d.com/kr/530/ScriptReference/SerializeField.html 1)private 필드를 직렬화하려면 해당 필드의 상단에 [SerializeField]를 기입합니다. [SerializeField]는 private 필드를 직렬화하여 인스펙터에서 해당 클래스의 private 변수..
유니티(Unity)에서 Debug.DrawRay 함수를 사용하여 디버깅 Ray 표시하기Debug.DrawRay 함수를 사용하여 특정 시작점(start)에서 방향(dir)으로 색상(color)의 선을 표시합니다.https://docs.unity3d.com/ScriptReference/Debug.DrawRay.html 이 오브젝트의 위치에서 로컬 축 z 방향으로 길이 10의 빨간색 선(ray)을 표시합니다.
유니티 콘솔(console)에 로그 메시지 출력하기(Debug.Log) Debug.Log 함수를 사용하여 프로그램을 디버깅하는데 도움이 되는 정보 메시지를 출력할수있습니다. 문자열 표현으로 변환할 문자열 또는 개체를 함수의 파라미터로 전달합니다. https://docs.unity3d.com/ScriptReference/Debug.Log.html
유니티에서 private 변수를 인스펙터(inspector)에서 표시 일반적으로 스크립트에서 private으로 선언한 변수는 에디터의 인스펙터(inspector)에서 표시하지않습니다. private 변수를 인스펙터에서 표시하는 방법( [SerializeField], Debug mode) [SerializeField] 1)인스펙터에서 private 변수를 표시하려면 변수 선언 상단에 [SerializeField]를 기입합니다. 2)private 변수를 인스펙터에서 표시되는것을 확인할수있습니다. Debug mode 3)인스펙터의 우측 상단에서 Debug를 선택합니다. 4)private 변수를 인스펙터에서 표시되는것을 확인할수있습니다.