對於3種相機模式,我有一個簡單的enum
值類型。我知道如何打印出每個值(例如Debug.Log(OrbitStyle.Smooth)
或Debug.Log(OrbitStyle.Smooth.ToString())
),但爲了全部打印出來,我想我必須爲它編寫一個函數。循環遍歷相機模式的枚舉
我的第一個問題是:這是唯一的方法這樣做,或者是否有一個函數循環通過enum
s?
我第二問題是:爲什麼我的Unity3D
程序崩潰時,我添加=
包括所有值,而遞增/遞減?下面的程序打印出Smooth, Step
,然後Fade, Step
,但我使用<=
或>=
以包括最小值和最大值,但它總是崩潰。我究竟做錯了什麼?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraOribit : MonoBehaviour
{
enum OrbitStyle
{
Smooth,
Step,
Fade
}
void Start()
{
for (OrbitStyle e1 = OrbitStyle.Smooth; e1 < OrbitStyle.Fade; e1 = IncrementEnum(e1))
{
Debug.Log(e1);
}
for (OrbitStyle e2 = OrbitStyle.Fade; e2 > OrbitStyle.Smooth; e2 = DecrementEnum(e2))
{
Debug.Log(e2);
}
}
static OrbitStyle IncrementEnum(OrbitStyle e)
{
if (e == OrbitStyle.Fade)
return e;
else
return e + 1;
}
static OrbitStyle DecrementEnum(OrbitStyle e)
{
if (e == OrbitStyle.Smooth)
return e;
else
return e - 1;
}
}
非常感謝您的幫助! – Joshua