Это Unity GameObjects может иметь Компоненты.Метод GetComponent<T>()
получает ссылку на компонент T
из текущего GameObject.
Так что если ваш GameObject имеет оба компонента (ScriptA
и ScriptB
)
, тогда будет возвращена "ненулевая" ссылка на экземпляр ScriptB
:
public class ScriptA : MonoBehaviour {
ScriptB scriptB;
// Use this for initialization
void Start () {
scriptB = GetComponent<ScriptB>(); //Not null if GameObject has ScriptB component.
}
}
Если в вашем GameObject нет компонента ScriptB
, тогда метод GetComponent<T>()
вернет ноль.
Если ScriptB является компонентом другого GameObject, вам понадобится ссылка на этот другой GameObject и вызовите его через OtherGamoeObject.GetComponent<T>()
Если ScriptB даже не является Scriptэто изменило GameObject и просто (например) содержит некоторые математические вычисления или около того, тогда я бы предложил не делать его наследуемым от Monobehaviour
, а просто создать экземпляр следующим образом: var scriptB = new ScriptB();