Ключевое слово "ref" тебе в помощь:
Просветиться.
На тему struct.
Если идти по пути со структурами, не обязательно вызывать функцию дважды (если аргументы одни и те же). Пример:
var functionResult = MyFunction( argument );
var vectorResult = functionResult.Vector;
var objectResult = functionResult.GO;
...
public FunctionResult MyFunction( int argument ) { return new FunctionResult(); }
...
public struct FunctionResult {
public Vector3 Vector;
public GameObject GO;
}