0

我的动画状态机

<table border="1">
<tr>
<th>State Change</th>
<th>Conditions</th>
<th>Input Control</th>
</tr>
<tr>
<td>Idle -> Walk</td>
<td>IsMove == true</td>
<td>MouseDown anywhere in game</td>
</tr>
<tr>
<td>Walk -> Idle</td>
<td>IsMove == false</td>
<td>MouseUp anywhere in game</td>
</tr>
<tr>
<td>Walk -> Attack</td>
<td>Trigger "Attack"</td>
<td>MouseUp on enermies</td>
</tr>
<tr>
<td>Attack -> Idle</td>
<td>None</td>
<td>None</td>
</tr>
</table>

    当 MouseUp 作用于敌人时,会发生两件事:
    触发“攻击”并将“IsMove”设置为 false。
    我确定触发“攻击”发生在将“IsMove”设置为false之前。
    但是状态变为 Walk -> Idle,而不是 Walk -> Attack。
    谁能告诉我为什么?谢谢你!

4

1 回答 1

0

我知道答案。
我不知道为什么,但似乎统一会处理 MonoBehaviour 的所有更新而不是动画师。
所以无论是先触发“攻击”还是先将“IsMove”设置为false都没有关系。
当状态机要改变时,“IsMove”已经是假的了。

于 2016-04-19T14:15:49.160 回答