немного надуманный смысл примера, но принцип вот как реализуется: 
 Код
 
 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; // вот тут доступ к нестатическим переменным из статического метода    
          } 
              
 }