Page 1 of 1

ParameterContainerでComponentListを使用するとき、Component以外を型指定すると要素が追加できない

Posted: 2021/08/27 01:56
by ooee
いつもお世話になっています。

件名の不具合に遭遇したので、ご報告いたします。

OS: Windows10
Unityバージョン: 2020.3.16f1
Arborバージョン: 3.8.4
再現方法:
1. ParameterContainerでComponentListをComponent以外で型指定(例えばRigidbody)で作成
2. 要素追加ボタンをクリック
3.
UnityException: ToString is not allowed to be called during serialization, call it from Awake or Start instead. Called from MonoBehaviour 'ParameterContainer' on game object 'ParameterContainer'.
See "Script Serialization" page in the Unity Manual for further details.
と表示され、要素が追加されない。

Re: ParameterContainerでComponentListを使用するとき、Component以外を型指定すると要素が追加できない

Posted: 2021/08/27 04:03
by caitsithware
ご報告ありがとうございます。

確認したところ再現できましたので修正いたします。

暫定対処方法:
  1. Assets/Plugins/Arbor/Internal/Scripts/Parameter/ListParameter/ObjectListParameterBase.csを開く。
  2. 128行目を以下のように変更する。

    Code: Select all

    T value = list[i] as T;
    if (value == null) // Invalid object
    {
    	value = null;
    }
    accessor.AddElement(listInstance, DynamicUtility.Cast(value, valueType), ListInstanceType.Keep);
    

Re: ParameterContainerでComponentListを使用するとき、Component以外を型指定すると要素が追加できない

Posted: 2021/09/02 10:29
by caitsithware
Arbor 3.8.5にて修正いたしました。
アセットストアから再DLし、リリースノートやreadme記載の更新手順に従って再インポートしてください。
Arbor 3.8.5 リリース | Arbor 3