немного надуманный смысл примера, но принцип вот как реализуется:
Код
public class NonStaticInStatic : MonoBehaviour{
public GameObject gun; // какая-то публичная переменная в экземпляре класса, не статик (ну например для настройки оружия через инспектор)
private GameObject mCurrentTarget; // какая-то приватная переменная в экземпляре класса, не статик
public GameObject target{ // публичная проперть экземпляра класса, не статик
set {
if(value != null){
mCurrentTarget = value;
gun.transform.LookAt(mCurrentTarget);
transform.LookAt(mCurrentTarget);
....
}
}
}
// статик функция работающая с экземпляром скрипта (класса) и его не статическими переменными
public static void SetTargets(NonStaticInStatic aOwner, GameObject aTarget){
if((aOwner == null) || (aOwner.gun == null) || (aTarget == null)) return;
aOwner.target = aTarget; // вот тут доступ к нестатическим переменным из статического метода
}
}