UnassignedReferenceException: The variable original of SCR has not been assigned.
You probably need to assign the original variable of the SCR script in the inspector.
C#
1public class Kurasu : MonoBehaviour, INTERFACE 2{ 3 public void DoSomething() 4 { 5 //Do something... 6 } 7}
上とは別のクラスで、
C#
1public class SCR : MonoBehaviour 2{ 3 [SerializeField] 4 Component compo; 5 6 void Start() 7 { 8 INTERFACE inter = compo.GetComponent<INTERFACE>(); 9 } 10 11 public interface INTERFACE 12 { 13 public void DoSomething(); 14 } 15}
KurasuクラスのDoSomethingをSCRクラスでinterfaceを通して実行しようとしています。
しかし、SRCクラスの**INTERFACE inter = compo.GetComponent<INTERFACE>();**のところで上記のエラーが発生します。実際、インスペクターにコンポーネントを割り当ててないのでエラーが起きるのは当たり前なのですが...
割り当てられていないときの場合分けがうまくいきません。
通常のコンポーネント(コライダーやレンダラー)などは、以下のコードのように、Component != nullで存在確認できるのですが、interfaceの場合、**GetComponent<INTERFACE>()**を行った瞬間にエラーが発生します。
C#
1 INTERFACE inter = compo.GetComponent<INTERFACE>(); 2 if(inter != null) 3 inter.DoSomething();
interfaceを存在確認したい場合、どうすればいいでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/14 04:21