我有一個膠囊,這是我的角色,我需要我的膠囊生成一個球體,該球體將順利移動到我設定的位置。有代碼,但它移動了我的角色,我不知道如何在角色位置生成物件并將其移動到另一個位置
private void Start()
{
StartCoroutine(PingPongWithDelay());
}
private IEnumerator MoveFromTo(Vector3 startPosition, Vector3 endPosition, float time)
{
var currentTime = 0f;
while (currentTime < time)
{
transform.position = Vector3.Lerp(startPosition, endPosition, 1 - (time - currentTime) / time);
currentTime = Time.deltaTime;
yield return null;
}
transform.position = endPosition;
}
private IEnumerator PingPongWithDelay()
{
while (true)
{
yield return MoveFromTo(new Vector3(0f, 0f, 0f), new Vector3(0f, 0f, 1f), 2f);
yield return new WaitForSeconds(1f);
yield return MoveFromTo(new Vector3(0f, 0f, 1f), new Vector3(0f, 0f, 0f), 2f);
yield return new WaitForSeconds(1f);
}
}
}
uj5u.com熱心網友回復:
如前所述,你已經有了你的模板例程,你只需要像你想要的那樣使用它們,例如
public void SpawnSphere(Vector3 startPosition, Vector3 targetPosition, float duration)
{
var sphere = Instantiate(spherePrefab);
StartCorouine (MoveFromTo(sphere.transform, startPosition, targetPosition, duration);
}
private IEnumerator MoveFromTo(Transform obj, Vector3 startPosition, Vector3 endPosition, float time)
{
obj.position = startPosition;
for (var timePassed = 0f; timePassed < time; timePassed = Time.deltaTime)
{
obj.position = Vector3.Lerp(startPosition, endPosition, timePassed / time);
yield return null;
}
obj.position = endPosition;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/424498.html
