请用unity实现简单状态机,并给出具体代码
时间: 2023-04-05 09:03:31 浏览: 70
我可以回答这个问题。以下是一个简单状态机的示例代码:
```
public class SimpleStateMachine : MonoBehaviour
{
public enum State
{
Idle,
Walking,
Running
}
public State currentState;
void Start()
{
currentState = State.Idle;
}
void Update()
{
switch (currentState)
{
case State.Idle:
// Do idle behavior
break;
case State.Walking:
// Do walking behavior
break;
case State.Running:
// Do running behavior
break;
}
}
public void SetState(State newState)
{
currentState = newState;
}
}
```
在这个示例中,我们定义了一个简单的状态机,包含三个状态:Idle、Walking、Running。在 Start() 方法中,我们将当前状态设置为 Idle。在 Update() 方法中,我们使用 switch 语句根据当前状态执行不同的行为。我们还定义了一个 SetState() 方法,用于在运行时更改状态。
当需要更改状态时,我们可以调用 SetState() 方法,例如:
```
SimpleStateMachine stateMachine = GetComponent<SimpleStateMachine>();
stateMachine.SetState(SimpleStateMachine.State.Walking);
```
这将把状态机的当前状态更改为 Walking,从而触发相应的行为。