Unity3D - 메모장

quest3dkorea.com


통계 위젯 (화이트)

211
80
136177


마우스로 땅 찍어서 이동하기 Unity3D 스크립트

요 스크립트는 카메라 대상에 붙어 있음. 카메라가 따라가는거는 다른걸로 작성해야됨.

//이동 시작할 때 필요한거, 이동 끝나면 멈춰야 하기 때문에 넣음
private bool moveit = false;
// 카메라
public Camera cam;
//이동할 지점 저장할 벡터
private Vector3 targetpos;

void Update () {
//땅 찍은 좌표 반환
if(Input.GetMouseButtonUp(0)){
Ray ray = cam.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit, 10000f)){
targetpos = hit.point;
}
moveit = true;
}
//이동이 활성화 되고 목표지점에 근접했을때 멈춤
if(moveit==true){
// 부드럽지만 신속하게 이동
transform.localPosition = Vector3.Lerp(transform.position, targetpos, Time.deltaTime * 10f);
// 벡터간 거리를 재어보고
float dis = Vector3.Distance(transform.position, targetpos);
// OK! 이동 완료! 멈추자.
if(dis < 0.01f){
moveit = false;
}
}
}

덧글

  • 그라운 2018/02/12 17:14 # 삭제 답글

    그대로 했는데 안되요 ㅠㅠ
  • 오 미니 오 미니 2018/05/03 19:30 #

    본문에서 쓰이는 부분은 targetpos = hit.point; 요부분 밖에 없습니다. 충돌 지점 좌표읽어 오는 거죠. 이걸 염두에 두고 만드시면 됩니다. 그리고 위 본문은 코드의 일부분입니다. 본인 코드에 맞춰서 수정하셔야합니다.
댓글 입력 영역