Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 유니티 리소스매니저
- 너비 우선 탐색
- unity
- 유니티 시야 가림
- 유니티 InputManager
- c++
- LookRotation
- 유니티 Collision
- eulerAngles
- InputManager
- 오브젝트 풀링
- Mathf.Clamp
- 알고스팟
- LayerMask
- Raycast
- 유니티
- Quaternion.Euler
- 이진트리
- c++ 문자열 자르기
- LFS
- 유니티 오브젝트 풀링
- 유니티 머신러닝
- 유니티 ResourceManager
- 소스코드 줄번호
- 깊이 우선 탐색
- 코드블럭 테마
- git-lfs
- 유니티 Rotate
- 유니티 Vector3
- ML-Agents
Archives
- Today
- Total
무민은귀여워
[유니티] transform, Vector3 본문
반응형
1. transform 이동
transform.position 이용
* TransformDirection : 로컬 공간에서 월드 공간으로 변형 ( 역반향, InverseTransformDirection )
float _speed = 10.0f;
transform.position += transform.TransformDirection(Vector3.forward * Time.deltaTime * _speed);
transform.Translate 이용
float _speed = 10.0f;
transform.Translate(Vector3.forward * Time.deltaTime * _speed);
wasd 키 입력으로 이동시키기
if (Input.GetKey(KeyCode.W))
transform.Translate(Vector3.forward * Time.deltaTime * _speed);
if (Input.GetKey(KeyCode.S))
transform.Translate(Vector3.back * Time.deltaTime * _speed);
if (Input.GetKey(KeyCode.A))
transform.Translate(Vector3.left * Time.deltaTime * _speed);
if (Input.GetKey(KeyCode.D))
transform.Translate(Vector3.right * Time.deltaTime * _speed);
2. Vector3
Vector3 이해하기 위해 만든 MyVector
// 1. 위치 벡터
// 2. 방향 벡터
struct MyVector
{
public float x;
public float y;
public float z;
// 방향 벡터
// 1. 거리(크기) magnitude
// 2. 실제 방향 normalized
public float magnitude { get { return Mathf.Sqrt(x * x + y * y + z * z); } }
public MyVector normalized { get { return new MyVector(x / magnitude, y / magnitude, z / magnitude); } }
public MyVector(float x, float y, float z) { this.x = x; this.y = y; this.z = z; }
public static MyVector operator +(MyVector a, MyVector b)
{
return new MyVector(a.x + b.x, a.y + b.y, a.z + b.z);
}
public static MyVector operator *(MyVector a, float d)
{
return new MyVector(a.x * d, a.y * d, a.z * d);
}
public static MyVector operator -(MyVector a, MyVector b)
{
return new MyVector(a.x - b.x, a.y - b.y, a.z - b.z);
}
}
내 위치에서 목적지를 바라보는 벡터 구하기
MyVector to = new MyVector(10.0f, 0.0f, 0.0f);
MyVector from = new MyVector(5.0f, 0.0f, 0.0f);
MyVector dir = to - from; // (5.0f, 0.0f, 0.0f)
dir = dir.normalized; // (1.0f, 0.0f, 0.0f)
MyVector newPos = from + dir * _speed; // (15.0f, 0.0f, 0.0f)
반응형
'IT > Unity' 카테고리의 다른 글
[유니티] InputManager (0) | 2022.05.17 |
---|---|
[유니티] 회전 rotation (0) | 2022.05.16 |
[유니티] 싱글톤 패턴 (0) | 2022.05.16 |
유니티 git 연동 lfs 사용하기 (1) | 2021.05.18 |
memo) 유니티 레이캐스트 RayCast, BoxCast, SphereCast 스크랩 (0) | 2020.01.15 |
Comments