SendTrigger後、無限ループが発生しUnityがクラッシュする
Posted: 2021/08/10 05:41
OS: Windows10
Unity バージョン: 2020.3.12f
Arborバージョン: 3.8.3
再現方法: https://imgur.com/a/qlrPQwb
OnStateBeginでSendTriggerし、常駐ステートからTriggerTransitionでログ出力用のステートにTransition Timing Imeddiateで遷移させると、Unityがクラッシュします。
Editor.logを確認したところ、以下のようなものが大量に出ていました。
*****
ログ
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:Log (object)
Log:OnStateBegin () (at Assets/Log.cs:9)
Arbor.StateBehaviour:Arbor.Playables.IPlayableBehaviourCallbackReceiver.OnStart () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/StateBehaviour.cs:824)
Arbor.Playables.PlayableBehaviour:CallActiveEvent () (at Assets/Plugins/Arbor/Internal/Scripts/Playables/PlayableBehaviour.cs:80)
Arbor.Playables.PlayableBehaviour:ActivateInternal (bool,bool) (at Assets/Plugins/Arbor/Internal/Scripts/Playables/PlayableBehaviour.cs:212)
Arbor.Playables.PlayableBehaviourExtensions:Activate (Arbor.Playables.PlayableBehaviour,bool,bool) (at Assets/Plugins/Arbor/Internal/Scripts/Playables/PlayableBehaviourExtensions.cs:57)
Arbor.State:Activate (bool) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/State.cs:944)
Arbor.ArborFSMInternal:ChangeState (Arbor.State) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1394)
Arbor.ArborFSMInternal:NextState () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1232)
Arbor.ArborFSMInternal:SendTrigger (string,Arbor.SendTriggerFlags) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1793)
Arbor.ArborFSMInternal:ChangeState (Arbor.State) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1413)
Arbor.ArborFSMInternal:NextState () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1232)
Arbor.ArborFSMInternal:SendTrigger (string,Arbor.SendTriggerFlags) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1793)
Arbor.ArborFSMInternal:ChangeState (Arbor.State) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1413)
Arbor.ArborFSMInternal:NextState () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1232)
Arbor.ArborFSMInternal:SendTrigger (string,Arbor.SendTriggerFlags) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1793)
Arbor.ArborFSMInternal:ChangeState (Arbor.State) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1413)
Arbor.ArborFSMInternal:NextState () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1232)
Arbor.ArborFSMInternal:OnUpdate () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:547)
Arbor.NodeGraph:CallOnUpdate (bool) (at Assets/Plugins/Arbor/Internal/Scripts/NodeGraph.cs:3576)
Arbor.NodeGraph:Update () (at Assets/Plugins/Arbor/Internal/Scripts/NodeGraph.cs:3569)
*****
このログが大量に出るので無限ループしていると思われます。
ArborFSMInternal.cs:1413
ArborFSMInternal.cs:1232
ArborFSMInternal.cs:1793
は、回数を重ねるごとに増えていきます。
(画像の「Log」クラス)
public class Log : StateBehaviour
{
public override void OnStateBegin()
{
Debug.Log("ログ");
}
}
Unity バージョン: 2020.3.12f
Arborバージョン: 3.8.3
再現方法: https://imgur.com/a/qlrPQwb
OnStateBeginでSendTriggerし、常駐ステートからTriggerTransitionでログ出力用のステートにTransition Timing Imeddiateで遷移させると、Unityがクラッシュします。
Editor.logを確認したところ、以下のようなものが大量に出ていました。
*****
ログ
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:Log (object)
Log:OnStateBegin () (at Assets/Log.cs:9)
Arbor.StateBehaviour:Arbor.Playables.IPlayableBehaviourCallbackReceiver.OnStart () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/StateBehaviour.cs:824)
Arbor.Playables.PlayableBehaviour:CallActiveEvent () (at Assets/Plugins/Arbor/Internal/Scripts/Playables/PlayableBehaviour.cs:80)
Arbor.Playables.PlayableBehaviour:ActivateInternal (bool,bool) (at Assets/Plugins/Arbor/Internal/Scripts/Playables/PlayableBehaviour.cs:212)
Arbor.Playables.PlayableBehaviourExtensions:Activate (Arbor.Playables.PlayableBehaviour,bool,bool) (at Assets/Plugins/Arbor/Internal/Scripts/Playables/PlayableBehaviourExtensions.cs:57)
Arbor.State:Activate (bool) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/State.cs:944)
Arbor.ArborFSMInternal:ChangeState (Arbor.State) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1394)
Arbor.ArborFSMInternal:NextState () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1232)
Arbor.ArborFSMInternal:SendTrigger (string,Arbor.SendTriggerFlags) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1793)
Arbor.ArborFSMInternal:ChangeState (Arbor.State) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1413)
Arbor.ArborFSMInternal:NextState () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1232)
Arbor.ArborFSMInternal:SendTrigger (string,Arbor.SendTriggerFlags) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1793)
Arbor.ArborFSMInternal:ChangeState (Arbor.State) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1413)
Arbor.ArborFSMInternal:NextState () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1232)
Arbor.ArborFSMInternal:SendTrigger (string,Arbor.SendTriggerFlags) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1793)
Arbor.ArborFSMInternal:ChangeState (Arbor.State) (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1413)
Arbor.ArborFSMInternal:NextState () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:1232)
Arbor.ArborFSMInternal:OnUpdate () (at Assets/Plugins/Arbor/Internal/Scripts/StateMachine/ArborFSMInternal.cs:547)
Arbor.NodeGraph:CallOnUpdate (bool) (at Assets/Plugins/Arbor/Internal/Scripts/NodeGraph.cs:3576)
Arbor.NodeGraph:Update () (at Assets/Plugins/Arbor/Internal/Scripts/NodeGraph.cs:3569)
*****
このログが大量に出るので無限ループしていると思われます。
ArborFSMInternal.cs:1413
ArborFSMInternal.cs:1232
ArborFSMInternal.cs:1793
は、回数を重ねるごとに増えていきます。
(画像の「Log」クラス)
public class Log : StateBehaviour
{
public override void OnStateBegin()
{
Debug.Log("ログ");
}
}