我有一個上下移動的目標,但我不確定如何將其垂直移動限制在某個y軸範圍內。感謝您的任何建議。代碼如下:Unity3D - 物體在y軸範圍內連續上下移動
using UnityEngine;
using System.Collections;
public class TargetMovementVertical : MonoBehaviour
{
public int maxSpeed;
private Vector3 startPosition;
// Use this for initialization
void Start()
{
maxSpeed = 3;
startPosition = transform.position;
}
// Update is called once per frame
void Update()
{
MoveVertical();
}
void MoveVertical()
{
transform.position = new Vector3(transform.position.x, startPosition.y + Mathf.Sin(Time.time * maxSpeed), transform.position.z);
if(transform.position.y > 1.0f)
{
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z);
}
else if(transform.position.y < -1.0f)
{
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z);
}
}
}
對不起,我的意思是我已經在場景中有一個對象,並且我試圖使它相對於它已經存在的位置向上和向下移動。我嘗試了兩種方法,但仍然無法正常工作。它使得它在y軸上下跳得更遠。 – khmer2040 2014-09-24 13:45:35
我剛剛測試過我的舊解決方案,發現問題,我認爲我們不應該添加舊的y值,而是用startPosition.y替換它。請檢查我的更新解決方案。 – 2014-09-24 14:25:04
我已經開始工作了,但非常感謝您的幫助。我真的很感激它:) – khmer2040 2014-09-24 20:41:57