반응형

안녕하세요.

 

오늘은 유니티에서 마우스 클릭 시 객체가 이동하도록 구현해보겠습니다.

 

일단 기본적으로 바닥과 객체를 하나 생성하겠습니다.

 

바닥은 Quad로 생성하겠습니다.

 

 

그리고, 생성 후 바닥 같은 모양을 만들기 위해, 크기와 로테이션을 변경하겠습니다.

 

그리고 움직일 객체를 만들어보겠습니다.

 

Cube로 만들겠습니다.

 

Cube Object를 바닥 오브젝트와 적당한 거리로 이동시킵니다.

 

 

그리고 Cube Object에 스크립트를 추가합니다.

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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Player : MonoBehaviour
{
    public float m_fSpeed = 5.0f;
    Vector3 m_vecTarget;
    void Start()
    {
        m_vecTarget = transform.position;
    }
 
    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if(Physics.Raycast(ray, out hit, 10000f))
            {
                m_vecTarget = hit.point;
                m_vecTarget.y = transform.position.y;
            }
        }
        transform.position = Vector3.MoveTowards(transform.position, m_vecTarget, m_fSpeed * Time.deltaTime);
    }
}
 
 
cs

이렇게 추가하면 클릭할 때 마다 이동하는 것을 볼 수 있습니다.

 

Physics.Raycast(ray, out hit, 10000f)에 들어간 매개변수의 의미는

 

ray는 광선의 시작점과 방향

hit는 충돌체가 발생한 위치에 대한 정보가 함수에서 받아옵니다.

10000f는 광선이 충돌을 확인해야하는 최대 거리를 의미합니다.

 

반응형

+ Recent posts