개발공부/유니티
[Unity] 유니티 마우스 클릭 객체 이동
정보를드립니다
2019. 10. 7. 20:10
반응형
안녕하세요.
오늘은 유니티에서 마우스 클릭 시 객체가 이동하도록 구현해보겠습니다.
일단 기본적으로 바닥과 객체를 하나 생성하겠습니다.
바닥은 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는 광선이 충돌을 확인해야하는 최대 거리를 의미합니다.
반응형