Page 1 of 1

InputComponent字段值不正确

Posted: 2024/09/18 09:33
by kvfreedom
1.png
1.png (77.77 KiB) Viewed 6307 times
2.png
2.png (26.34 KiB) Viewed 6307 times
1.3.0版本中,EvaluateComponent作为行为树的Decorator时InputComponent字段值不正确

Re: InputComponent字段值不正确

Posted: 2024/09/18 09:49
by caitsithware
感谢您的报告。
我们已经修复了据信与您在今天发布的 1.3.1 版本中报告的错误相关的错误。
请更新并检查。

Re: InputComponent字段值不正确

Posted: 2024/09/18 09:55
by kvfreedom
caitsithware wrote: 2024/09/18 09:49 感谢您的报告。
我们已经修复了据信与您在今天发布的 1.3.1 版本中报告的错误相关的错误。
请更新并检查。
1.3.1仍然存在这个Bug

Re: InputComponent字段值不正确

Posted: 2024/09/18 10:03
by caitsithware
我能够重现它,所以我会修复它。

Re: InputComponent字段值不正确

Posted: 2024/09/18 10:50
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]);
        }
    }