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 32 33 34 35 36 37 38 39 40 41 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class CardesianMove : MonoBehaviour { public Vector3 position; private RaycastHit hit; private Vector3 movePos; private void Start() { movePos = transform.position; } private void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 10000)) { movePos = hit.point; } //movePos로 이동하는 벡터의 절대값이 if ((movePos - transform.position).sqrMagnitude >= 0.3f * 0.3f) { Vector3 lookDir = hit.point - transform.position; lookDir.z = 0; transform.rotation = Quaternion.LookRotation(lookDir); transform.Translate(Vector3.forward * Time.deltaTime * 10.0f); Vector3 pos = transform.position; pos.z = 0; transform.position = pos; position = transform.position; } } } | cs |
미래의 내가 아마 정리하겠지...
sqrMagnitude를 왜 사용해야되는지 잘 정리해둔 블로그
간략히 정리하자면 sqrMagnitude는 거리와 관련된 계산을 위해서 사용함.
Magnitude에 비해서 루트 연산을 하지 않기 때문에 계산이 더 빠르다고 한다.
'Project > Galapagos' 카테고리의 다른 글
mapping(데카르트 좌표 -> 구면 좌표) (0) | 2019.01.14 |
---|---|
구면 좌표계 Day1(공식) (0) | 2019.01.11 |
*클래스 타입이 list인 코드 분석 (0) | 2019.01.11 |
Flocking Day2(2d flocking코드 분석) (0) | 2019.01.11 |
네트워크 Day5 (포톤네트워크 PUN2 - 동기화 분석) (0) | 2018.12.25 |