Как назначить объекты из конструктора, используя ссылки в C # - PullRequest
0 голосов
/ 27 апреля 2019

Существует три класса.

В классе контроллера выполняется модуль, который присваивает объект переменной с именем _goCharacter.

Класс Center является центральным, который предназначен для обработки взаимодействияclass.

Объект _goCharacter, к которому мы пытаемся обратиться в классе взаимодействия, является объектом в контроллере.

Проблема в том, что объект _goCharacter изначально нулевой и будет продолжать изменятьсяв будущем.

Так что я всегда назначаю их центральному классу, но это не очень хорошо для производительности.

Я обнаружил, что если я использую ref и out, чтобы назначить ссылкуЯ могу использовать его в качестве справочного материала без необходимости перераспределять его каждый раз.

Пожалуйста, посоветуйте мне, что делать.

class Controller{
    public GameObject _goCharacter = null;


   void func(){   // Objects are assigned while other modules are running.
        _goCharacter = .....
        // Assign an object to the _goCharacter.
    }

}


class Center{

    private GameObject _goCharacter;
    private Interaction interaction;

    void Start(){
        interaction = new Interaction();
    }
    void Update(){

        _goCharacter = Controller.GetComponent<Controller>()._goCharacter; 
        interaction.setObject(_goCharacter);      // Reallocate each time.
        interaction.func2();
    }

}


class Interaction{
    private GameObject _goCharacter; 

    public Interaction(){

    }

    public Interaction(GameObject _goCharacter){
        this._goCharacter = _goCharacter;    
    }

    public void setObject(){
        this._goCharacter = _goCharacter;    
    }

    public func2(){
        // Function dealing with _goCharacter
    }
}
...