Unity3D에서 게임 개체를 한 위치에서 다른 위치로 천천히 이동
DonkeyKong 게임 오브젝트를 플랫폼 B 위치로 이동해야 한다고 가정해 보겠습니다. 그러면 이렇게 될 수 있습니다.
그런 다음 스크립트를 만들고 상위 개체에 연결하고 다음 코드를 붙여넣습니다.
`System.Collections 사용;
System.Collections.Generic 사용;
UnityEngine 사용;
공개 클래스 PlatformMovement : MonoBehaviour
{
개인 Vector3 pointA;
개인 Vector3 pointB;
Vector3 nextPos;
[SerializeField] 부동 속도;
[SerializeField] 변환 childTransform;
[SerializeField]
변환 transformB;
//첫 번째 프레임 업데이트 전에 Start가 호출됩니다.
무효 시작()
{
pointA = childTransform.localPosition;
pointB = transformB.localPosition;
nextPos = 포인트B;
}
// Update is called once per frame
void Update()
{
Move();
}
void Move()
{
childTransform.localPosition = Vector3.MoveTowards(childTransform.localPosition, nextPos, speed*Time.deltaTime);
}
}
`
그런 다음 인스펙터에 변수를 설정합니다.
주기적인 동작으로 게임 개체를 이동하려면 두 줄을 추가해야 합니다.
`
System.Collections 사용;
System.Collections.Generic 사용;
UnityEngine 사용;
공개 클래스 PlatformMovement : MonoBehaviour
{
개인 Vector3 pointA;
개인 Vector3 pointB;
Vector3 nextPos;
[SerializeField] 부동 속도;
[SerializeField] 변환 childTransform;
[SerializeField]
변환 transformB;
//첫 번째 프레임 업데이트 전에 Start가 호출됩니다.
무효 시작()
{
pointA = childTransform.localPosition;
pointB = transformB.localPosition;
nextPos = 포인트B;
}
// Update is called once per frame
void Update()
{
Move();
}
void Move()
{
childTransform.localPosition = Vector3.MoveTowards(childTransform.localPosition, nextPos, speed*Time.deltaTime);
//check if the position of gameobject is changed if(Mathf.Abs(Vector3.Distance(childTransform.localPosition, nextPos) ) <= .1f)
{
ChangeDestination();
}
}
void ChangeDestination()
{
//set the next position
nextPos = nextPos != pointA ? pointA : pointB;
}
}
`
Reference
이 문제에 관하여(Unity3D에서 게임 개체를 한 위치에서 다른 위치로 천천히 이동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nafisnil/slowly-move-gameobject-from-one-place-to-another-in-unity3d-4b0o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)