0
필자는 자신의 코 루틴을 사용하여 여러 GameObject의 위치와 회전을 스크립트에 첨부하여 부드럽게 보간하기를 원했습니다. 코 루틴을 시작할 때 매끄러운 부분은 잘 작동하지만 모든 객체는 같은 위치로 이동합니다. 의도 한 바가 아닙니다. 나는 그것이 왜 그런지, 그리고 그것을 다루는 현명한 방법이 있는지 이해하고 싶다. 나는 거기에 목록이있는 mastercoroutine을 만든 다음 평활 부분을 호출에 대해 생각했다코 루틴 호출 스택
IEnumerator interpolate_Plate(Transform targ)
{
float passedTime = 0;
while (!transform.Equals(targ))
{
passedTime += Time.deltaTime;
transform.position = Vector3.Lerp(transform.position, targ.position, passedTime);
transform.rotation = Quaternion.Lerp(transform.rotation, targ.rotation,passedTime);
yield return null;
}
yield break;
}
:
이처럼 내 코 루틴이 모습입니다. targ의 참조가 항상 스택의 모든 coroutinecall에 대해 재설정된다는 문제가 있습니까?
당신에 의해 코 루틴을 호출하는 기능 요청으로: 통일 이후
public void move_Plate(Transform newPosition)
{
StartCoroutine(interpolate_Plate(newPosition));
}
어떻게 interpolate_Plate를 호출하나요? –
당신은 coroutines를 시작하는 방법을 보여줘야 할 것입니다. 또한 코 루틴이 그 지점에서 끝나기 때문에 마지막 휴식은 쓸모가 없습니다. – Everts
어쨌든 코 루틴이 필요하지 않을 수도 있습니다. 업데이트에서 논리를 이동하면 필요에 충분할 수 있습니다. –