スロットの型制約

一部のスロットでは、属性を使用して接続可能な型に制約を設定できます。

スクリプト例

TestConstraintSlotBehaviourスクリプトファイルを作成し、以下のコードを記述してください。

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

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

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

	public override void OnStateBegin()
	{
		AudioSource source_ = audioSource.GetValue<AudioSource>();
		if (source_ != null)
		{
			source_.clip = audioClip.GetValue<AudioClip>();
		}
	}
}

使用できる属性

クラス 属性
OutputSlotAny SlotTypeAttribute
InputSlotAny ClassTypeConstraintAttributeから派生したクラス
SlotTypeAttribute
InputSlotComponent ClassTypeConstraintAttributeから派生したクラス
SlotTypeAttribute
指定の他、Componentクラスに制約される。
InputSlotUnityObject ClassTypeConstraintAttributeから派生したクラス
SlotTypeAttribute
指定の他、UnityEngine.Objectクラスに制約される。
FlexibleComponent ClassTypeConstraintAttributeから派生したクラス
SlotTypeAttribute
指定の他、Componentクラスに制約される。