유니티:VR

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동

틀:유니티

  1. 유니티:개요
  2. 유니티:기본 조작
    1. 유니티:에셋스토어
  3. 유니티:카메라
  4. 유니티:오브젝트
    1. 유니티:데이터 입력받기
    2. 유니티:오브젝트 이동(오브젝트 조작)
    3. 유니티:힘으로 오브젝트 이동
    4. 유니티:충돌 이벤트
    5. 유니티:오브젝트 작성 tip
    6. 유니티:프리팹
  5. 유니티:코딩기초
    1. 유니티:C sharp 코딩 편의기능
    2. 유니티:MonoBehaviour
    3. 유니티:이벤트 메서드
    4. 유니티:컴포넌트 조작하기
  6. 유니티:UI
  7. 유니티:게임 내 화면
  8. 유니티:플레이어
    1. 유니티:모델
    2. 유니티:캐릭터 이동
    3. 유니티:애니메이션
    4. 유니티:주인공 시점
  9. 유니티:맵
    1. 유니티:투명한 벽 만들기
    2. 유니티:내비게이션
  10. 유니티:씬
  11. 유니티:몬스터
  12. 유니티:아이템
  13. 유니티:음향
    1. 유니티:배경음
    2. 유니티:효과음
  14. 유니티:빌드
  15. 유니티:VR
    1. 유니티:VR:UI
    2. 유니티:VR:VR로 변환
  16. 유니티:팁

개요[편집 | 원본 편집]

최근엔 AR, VR 등 현실과 접목한 게임이 주목받고 있다. 유니티에선 이러한 구현도 가능한데, 기본적인 개발방향은 비슷한데, 조금 다른 부분이 있어 이곳에 따로 정리한다.

시점[편집 | 원본 편집]

회전[편집 | 원본 편집]

고개를 움직이는 것에 따라 시야를 바꾸어주어야 한다.

이름 실제 행동
x Pitch 위아래 이동
y Yaw 좌우 이동
z Roll 고개 까딱

시점 이동 구현[편집 | 원본 편집]

메인카메라에 다음과 같은 스크립트를 추가한다. 다음 코드는 마우스의 움직임에 따라 시점을 바꾸는 코드이다. VR기기를 쓰면 사용자의 시선 방향을 따라 시선을 바꾼다.

using UnityEngine;
using System.Collections;

public class CamRotate : MonoBehaviour {
	float RX;
	float RY;
	public float sensitivity = 500;
	
	void Start () {}
	
	void Update () {
	    // 회전이기 때문에 수직 움직임은 x축에 대한 회전이 되고, 수평 움직임은 y축에 대한 회전이 된다.
		// 마우스의 수직축 이동값을 mx에 넣는다.
		float mx = Input.GetAxis("Mouse Y");
		// 마우스의 수평축 이동값을 my에 넣는다.
		float my = Input.GetAxis("Mouse X");

		RX += mx * sensitivity * Time.deltaTime;
		RY += my * sensitivity * Time.deltaTime;

		RX = Mathf.Clamp(RX, -60, 60);

        //오일러 각을 통해 시야를 제어한다.
		transform.eulerAngles = new Vector3(-RX, RY, 0);
		#endif
	}
}

Z축은 포워드 벡터라 한다. 고개를 까딱하는 걸 구현한다. 일반적인 게임에선 구현되지 않는다.