728x90
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestPlayer : MonoBehaviour
{
[SerializeField]
private Transform eye;
private Vector3 targetPosition;
private Quaternion trot;
private void Start()
{
MoveForward();
//CoMoveForward();
}
public void MoveForward()
{
Ray ray = new Ray(this.eye.position, this.transform.forward);
Debug.DrawRay(ray.origin, ray.direction * 100f, Color.blue, 5f);
RaycastHit hit;
if(Physics.Raycast(ray, out hit))
{
Vector3 tpos = new Vector3(hit.point.x,transform.position.y, hit.point.z);
this.targetPosition = tpos;
DrawArrow.ForDebug(hit.point, hit.normal, 5f, Color.green, ArrowType.Solid);
//목표지점 바라보기
this.trot = Quaternion.LookRotation(hit.normal);
this.StartCoroutine(this.CoMoveForward());
}
}
private IEnumerator CoMoveForward()
{
while (true)
{
float distance = Vector3.Distance(this.transform.position,this.targetPosition);
if (distance <= 0.2f)
{
break;
}
//translate로 이동시키기
//this.transform.Translate(Vector3.forward * 3f * Time.deltaTime);
//lerp함수로 이동시키기
this.transform.position = Vector3.Lerp(this.transform.position, this.targetPosition, Time.deltaTime);
yield return null;
}
Debug.Log("Move Complete");
//회전시키기
this.transform.rotation = this.trot;
}
}
'KDT > 유니티 심화' 카테고리의 다른 글
23/08/23 HeroShooter 포탈 닿으면 FadeOut (0) | 2023.08.23 |
---|---|
23/08/22 HeroShooter 이동하기 (0) | 2023.08.22 |
23/08/20 개념 복습 (0) | 2023.08.20 |
23/08/20 [주말과제] 궁수의 전설 공격까지 만들기 (0) | 2023.08.20 |
23/08/17 이동시키기 (0) | 2023.08.18 |