既知の問題


現在確認されている既知の問題リストです。

ここに記載のない不具合がありましたら不具合フォーラムにご報告お願いいたします。

Arbor 3.6.10

InspectorからArborFSMやBehaviourTreeをコピー&ペーストするとグラフ内のデータスロットの接続が切れる

コピー&ペースト時のデータスロットと接続線の関連付け処理が不十分だったため、データスロットが接続データを追えなくなってしまう問題。

  • 対応状況:修正中。

暫定対処方法

  • Assets/Plugins/Arbor/Internal/Editor/Clipboard.csを開く。
  • 284行目(ComponentUtility.useEditorProcessor = cachedEnabled;の次の行)あたりに以下のコードを追加。
    for (int i = 0; i < dest.dataBranchRerouteNodes.count; i++)
    {
    	var rerouteNode = dest.dataBranchRerouteNodes[i];
    	if (rerouteNode != null)
    	{
    		RerouteSlot slot = rerouteNode.link;
    		if (slot != null)
    		{
    			slot.nodeGraph = dest;
    		}
    
    		IInputSlot inputSlot = slot as IInputSlot;
    		if (inputSlot != null)
    		{
    			DataBranch branch = inputSlot.GetInputBranch();
    			if (branch != null)
    			{
    				branch.inBehaviour = dest;
    				branch.inNodeID = rerouteNode.nodeID;
    			}
    		}
    
    		IOutputSlot outputSlot = slot as IOutputSlot;
    		if (outputSlot != null)
    		{
    			for (int j = 0; j < outputSlot.GetOutputBranchCount(); j++)
    			{
    				DataBranch branch = outputSlot.GetOutputBranch(j);
    				if (branch != null)
    				{
    					branch.outBehaviour = dest;
    					branch.outNodeID = rerouteNode.nodeID;
    				}
    			}
    		}
    	}
    }
    
  • (上記コード追加後の)454行目(static void CopyChildGraphs(NodeBehaviour dest)の前の行)あたりに以下のコードを追加。
    static void MoveDataSlots(NodeBehaviour behaviour)
    {
    	NodeGraph nodeGraph = behaviour.nodeGraph;
    
    	for (int i = 0; i < behaviour.dataSlotFieldCount; i++)
    	{
    		var dataSlotField = behaviour.GetDataSlotField(i);
    		if (dataSlotField != null)
    		{
    			DataSlot slot = dataSlotField.slot;
    			if (slot != null)
    			{
    				slot.nodeGraph = nodeGraph;
    			}
    
    			IInputSlot inputSlot = slot as IInputSlot;
    			if (inputSlot != null)
    			{
    				DataBranch branch = inputSlot.GetInputBranch();
    				if (branch != null && branch.inBehaviour != behaviour)
    				{
    					branch.inBehaviour = behaviour;
    				}
    			}
    
    			IOutputSlot outputSlot = slot as IOutputSlot;
    			if (outputSlot != null)
    			{
    				for (int j = 0; j < outputSlot.GetOutputBranchCount(); j++)
    				{
    					DataBranch branch = outputSlot.GetOutputBranch(j);
    					if (branch != null && branch.outBehaviour != behaviour)
    					{
    						branch.outBehaviour = behaviour;
    					}
    				}
    			}
    		}
    	}
    }
    
  • (上記コード追加後の)574行目(dest.expanded = expanded;の次の行)あたりに以下のコードを追加。
    MoveDataSlots(dest);
    
    
  • (上記コード追加後の)615行目(dest.Initialize(nodeGraph, nodeID);の次の行)あたりに以下のコードを追加。
    MoveDataSlots(dest);
    
    

Unity対応

ArborFSMやBehaviourTreeなどをプリセット経由で正常に適用できない

ArborFSMやBehaviourTree、ParameterContainerをそれぞれプリセットに登録し、他のコンポーネントで適用しようとしても正常に動作しない問題。
厳密にはUnityの仕様で、プリセットには一つのコンポーネントのデータしか保存されないため内部的に複数のコンポーネントを連携していると一部の参照が切れてしまう。

  • 対応状況:対応不可のコンポーネントはプリセットから除外するように対応中。Arbor 3.7.0で対応予定。

[Unity2019.3]SerializeReferenceで参照している型にStateLinkやDataSlotがある場合に、接続スロットが表示されない

Unity 2019.3で追加されたSerializeReferenceを使用して参照している型にArbor用の特殊なスロットフィールドがある場合に、正常に列挙されず接続スロットが表示されない問題。
3.6.8の時点では未実装で、Arbor固有のシステムに関連するフィールドにSerializeReferenceは使用できない状況。

  • 対応状況:Unity側にも不具合が見つかったため、その修正待ち。

過去バージョンの既知の問題アーカイブ

Privacy Preference Center

Your Privacy

This site uses cookies to display contents and advertisements tailored to users, provide social media functions, measure advertisement impressions and clicks. We also gather information on users' site usage status and provide them to social media, advertisement distribution and data analysis partners. Each partner may use this information in combination with other information that the user provided to each partner or other information gathered when the user used the service of each partner.

Analytics, Ads