일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ChatGPT
- 개발
- 앱 배포
- HAPTIC
- 연습
- 오큘러스
- Photon Fusion
- 드래곤 플라이트 모작
- 모작
- input system
- OVR
- meta
- meta xr
- XR
- Oculus
- CGV
- 개발일지
- 포트폴리오
- 유니티 Json 데이터 연동
- 유니티 GUI
- 팀프로젝트
- 유니티
- VR
- 드래곤 플라이트
- 오브젝트 풀링
- 길건너 친구들
- 가상현실
- 팀 프로젝트
- 유니티 UI
- 멀티플레이
Archives
- Today
- Total
EasyCastleUNITY
정규화 벡터 본문
정규화란, 벡터의 크기를 1로 만들어 벡터를 단위벡터로 변환하는 것을 말한다.
이 정규화를 하는 이유는 방향을 정하기 위한 것이 크다.
정규화를 하면 해당 벡터는, 방향의 속성만을 가지고 있지만
정규화를 하지않으면, 방향과 크기의 속성도 가지게 되어
실질적으로 오브젝트가 이동을 할 때, 속도의 차이를 일으키게 된다.
이동 테스트
using System;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private float moveSpeed = 2.0f;
private void Update()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 moveDir = (Vector3.forward * v) + (Vector3.right * h);
//Debug.Log(moveDir);
DrawArrow.ForDebug(this.transform.position, moveDir, 0f);
Debug.LogFormat("{0}, {1}", moveDir, moveDir.normalized);
DrawArrow.ForDebug(this.transform.position, moveDir.normalized, 0f,Color.red);
//Debug.LogFormat("{0}, {1}", moveDir, new Vector3(h, 0, v));
this.transform.Translate(moveDir * this.moveSpeed * Time.deltaTime);
//this.transform.Translate(moveDir.normalized * this.moveSpeed * Time.deltaTime);
}
private void OnDrawGizmos()
{
GizmosExtensions.DrawWireArc(this.transform.position, this.transform.forward, 360f, 1);
}
}
정규화 한 moveDir는 대각선으로 이동해도 동일한 속도로 이동하는 반면에
정규화 하지않은 moveDir는 대각선으로 이동하는 경우 속도가 증가하여 이동하게 된다.
'개인 필기' 카테고리의 다른 글
ref 키워드 and Vector3.SmoothDamp (0) | 2023.08.18 |
---|---|
Lerp and Slerp (0) | 2023.08.18 |
유니티 라이프 사이클 (0) | 2023.08.16 |
[과제] 스레드와 코루틴 (0) | 2023.08.15 |
[과제] 프로세스(Process), 스레드 (Thread), 코루틴 ( coroutine ) (0) | 2023.08.15 |