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를 왜 사용해야되는지 잘 정리해둔 블로그 

http://teddy.tistory.com/19


간략히 정리하자면 sqrMagnitude는 거리와 관련된 계산을 위해서 사용함. 

Magnitude에 비해서 루트 연산을 하지 않기 때문에 계산이 더 빠르다고 한다. 

Posted by 도이(doi)
,