InputComponent字段值不正确

Forum rules
Please isolate whether it is a problem with Unity itself or other assets before reporting.
Known issues are listed here: Known Issues
The information required to report a bug is as follows.
  • Logic Toolkit Version
  • Unity Version
  • How to reproduce

=======

日本語での投稿も受け付けています。
kvfreedom
Posts: 57
Joined: 2024/07/11 04:36

InputComponent字段值不正确

Post by kvfreedom »

1.png
1.png (77.77 KiB) Viewed 6284 times
2.png
2.png (26.34 KiB) Viewed 6284 times
1.3.0版本中,EvaluateComponent作为行为树的Decorator时InputComponent字段值不正确
User avatar
caitsithware
管理人
Posts: 68
Joined: 2024/03/26 01:56

Re: InputComponent字段值不正确

Post by caitsithware »

感谢您的报告。
我们已经修复了据信与您在今天发布的 1.3.1 版本中报告的错误相关的错误。
请更新并检查。
kvfreedom
Posts: 57
Joined: 2024/07/11 04:36

Re: InputComponent字段值不正确

Post by kvfreedom »

caitsithware wrote: 2024/09/18 09:49 感谢您的报告。
我们已经修复了据信与您在今天发布的 1.3.1 版本中报告的错误相关的错误。
请更新并检查。
1.3.1仍然存在这个Bug
User avatar
caitsithware
管理人
Posts: 68
Joined: 2024/03/26 01:56

Re: InputComponent字段值不正确

Post by caitsithware »

我能够重现它,所以我会修复它。
User avatar
caitsithware
管理人
Posts: 68
Joined: 2024/03/26 01:56

Re: InputComponent字段值不正确

Post by caitsithware »

临时解决方法如下。
  • 在代码编辑器中打开 Packages/Logic Toolkit/Runtime/Serialization/ValueInjection.cs
  • 在第79行添加以下代码

    Code: Select all

    HashSet<Type> visitedElements = new HashSet<Type>();
    
  • 在第118行添加以下代码

    Code: Select all

    else if (stack.Contains(elementType)
        && visitedElements.Add(elementType))
    {
        var list = new List<Type>(stack.Reverse());
    
        var index = list.IndexOf(elementType);
        stack.Clear();
        for (int i = 0; i < index; i++)
        {
            stack.Push(list[i]);
        }
        stack.Push(targetType);
        for (int i = index; i < list.Count; i++)
        {
            stack.Push(list[i]);
        }
    }
    
Post Reply