Hy每個人,我都想要做一個擴展方法,讓你可以做旋轉函數的統一,但你可以選擇執行的時間,並在每次執行例程時增加值調用。 例如:transform.Rotate(90,0,0, SecondsInWichMakeTheTransition);
使用IEnumerator做一個擴展方法
這是我寫的代碼。
public static class RotateMeExtensions{
public static IEnumerator MoveObject(this Transform source,
int x,int y, int z, float overTime)
{
Quaternion target = new Quaternion();
float a = source.rotation.x + x;
float b = source.rotation.y + y;
float c = source.rotation.z + z;
target.eulerAngles = new Vector3(a, b, c);
float startTime = Time.time;
while(Time.time < startTime + overTime)
{
source.rotation = Quaternion.Lerp(source.rotation, target, (Time.time - startTime)/overTime);
yield return null;
}
source.rotation = target;
}
現在我把它用按鈕用戶界面,但我第一次使用它後,它不工作了,該爲:eulerAngles留在90,7。我想每次增加90度。 Thnak你再見
其中的命名空間是GblobalMonobehavior? –
在我的ideia中,它只是一個monobehaviour,它附加在一個普通的對象上,並且有一個公共的靜態變量,指向它自己的實例,像一個單例。事情是,它必須是一個monobehaviour實例,因爲如果沒有,它不會運行協程 –
thnak你,現在我知道如何擴展靜態和單身。 :) –