参照する型の制約

AnyParameterReferenceComponentParameterReferenceなどは属性を指定することで、参照する型を制約することができます。

スクリプト例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using UnityEngine;
using Arbor;

[AddComponentMenu("")]
public class TestConstraintReferenceBehaviour : StateBehaviour
{
	[ClassExtends(typeof(AudioSource))]
	public ComponentParameterReference audioSource = new ComponentParameterReference();

	[ClassExtends(typeof(AudioClip))]
	public AssetObjectParameterReference audioClip = new AssetObjectParameterReference();

	// Use this for enter state
	public override void OnStateBegin()
	{
		AudioSource source = audioSource.value as AudioSource;

		if (source != null)
		{
			source.clip = audioClip.value as AudioClip;
		}
	}
}

スクリプトを追加した例

ParameterContainer例

使用できる属性の例

対象の型 属性
ComponentParameterReference ClassTypeConstraintAttributeから派生したクラス
SlotTypeAttribute
指定の他、Componentクラスに制約される。
AssetObjectParameterReference ClassTypeConstraintAttributeから派生したクラス
SlotTypeAttribute
指定の他、アセットオブジェクト型に制約される。