후들후들

Script Execution Order 변경사항의 저장

By  | 2018년 7월 30일 | 
Script Execution Order 변경사항의 저장
Script Execution Order는 각 클래스의 콜백함수들의 호출 순서를 조정할 수 있는 편리한 기능입니다. 별도로 코드에서 초기화 순서를 관리할 필요가 없기 때문입니다. 다만 코드가 Unity3D에 종속되기 때문에 개인적으로는 사용을 자제하는 편입니다. Script Execution Order를 변경할 경우 변경사항은 따로 프로젝트세팅 파일에 저장되지 않습니다. 해당 스크립트의 메타 파일에 변경사항이 저장됩니다. SVN에 commit하기 위해 프로젝트세팅 쪽을 살펴봐도 변화가 없길래 검색을 해보니 그렇게 구성돼있더군요. 유니티 공홈의 설명입니다. 크게 중요한 내용은 아니지만 혹시 헤매는 분들이 있을 수 있으니 작성해봅니다.

[칼럼]인공지능의 발전, 축복인가 저주인가

By  | 2019년 3월 28일 | 
대학원 재학중에 학생들끼리 공저하려고 작성한 인공지능에 관련된 칼럼입니다. 사실 칼럼이라 부르기도 민망하지만 인공지능의 미래에 대한 나름의 생각을 정리한 글입니다. 이미지는 구글 검색으로 가져왔기 때문에 저작권에 위배될 수 있으니 언제든 삭제될 수 있습니다. 2017년에 작성해서 현재와 안맞는 내용이 있을 수 있습니다. --------------------------------------------------------------------------------------------------------------------------------------------- 인공지능의 발전, 축복인가 저주인가 앞으로 어떤 일이 벌어질 것인가. - 불확실성의 양면 위의

VR 환경에서의 카메라 로테이션 참조

By  | 2016년 11월 14일 | 
Unity3d는 PlayerSetting에서 Virtual Reality Supported 옵션을 켜주면 별다른 조치없이 자동으로 카메라에 HMD의 위치와 방향같은 트래킹 정보가 적용됩니다. 만약 이러한 카메라의 움직임과는 별도로 HMD의 위치나 방향을 알고 싶은 경우는 InputTracking.GetLocalPosition과 InputTracking.GetLocalRotation을 이용하시면 됩니다. 함수의 인자로 들어가는 VRNode는 머리나 눈과 같은 부위를 의미합니다. 아마 VRNode.Head를 주로 이용하게 될 듯 합니다. Quaternion qDir = InputTracking.GetLocalRotation(VRNode.Head); dir = qDir * Vector3.for

GameObject의 Hierarchy 상의 경로 얻기

By  | 2018년 11월 27일 | 
디버그를 위해 코드에 로그를 삽입할 때 어느 오브젝트에 attach됐는지 알면 편리한 경우가 많습니다. Unity3d에서 따로 제공하는 함수는 없고 직접 코드를 작성해야 합니다. 아래와 같은 코드로 Hierarchy상에 존재하는 오브젝트의 경로(상위 오브젝트의 이름들)를 얻을 수 있습니다. public static string GetGameObjectPath(GameObject obj){ string path = "/" + obj.name; while (obj.transform.parent != null) { obj = obj.transform.parent.gameObject; path = "/" + obj.name + path; } retur

drag가 적용된 Rigidbody의 이동 궤도를 예측하는 코드

By  | 2018년 5월 23일 | 
drag가 적용된 Rigidbody의 이동 궤도를 예측하는 코드
포트리스같은 게임을 구현할 때 발사된 강체의 궤도를 미리 예측해서 보여줘야 하는 상황이 있습니다. 아래와 같이 프레임당 위치를 구할 수 있습니다. List<Vector3> list = new List<Vector3>();float unitTime = 1f / 50f; //초당 50프레임으로 계산int steps = 50 * 10; // 10초 계산(총 500프레임)for (int i = 0; i < steps; i++) {velocity.y += Physics.gravity * unitTime; position += velocity * unitTime;list.Add(position);} 하지만 공기의 저항같은 상황을 구현하려면 drag를 이용해야 합니다.