#はじめに
この記事はUnityで,
- スクリプトから他のスクリプトの変数やメソッドを呼び出したい人,
- スクリプトをGameObjectにアタッチしなくても, そのスクリプトの変数やメソッドを呼び出したい人
向けに書きました.
ただし呼び出される側のスクリプトは, StartやUpdateのようなイベント関数を含まず, 変数や自作のメソッドだけを含むことにします.
簡単なことですが, ググってもあまり情報がなかったので残しておきます.
#呼び出される側のスクリプト
Another.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 呼び出される側のスクリプト. GameObjectにアタッチしない.
// StartやUpdateを使わないため, MonoBehaviourは不要.
// 他のスクリプトから読み込むため, publicを付ける.
public class Callee
{
// 呼び出される変数
public int exampleNumber = 17;
// 呼び出されるメソッド
public void Sup()
{
Debug.Log("Good!");
}
}
もちろん, Another.csはどのGameObjectにもアタッチしません
#呼び出す側のスクリプト
UsingOtherComponents.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 呼び出す側のスクリプト. GameObjectにアタッチする.
public class UsingOtherComponents : MonoBehaviour
{
void Start()
{
// Another.csのCalleeのインスタンス化
Callee _Callee = new Callee();
// 変数の呼び出し.
int _exampleNumber = _Callee.exampleNumber;
Debug.Log("Eample number is " + _exampleNumber);
// メソッドの呼び出し.
_Callee.Sup();
}
}