Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Закрытая тема
 
Опции темы
Старый 07.07.2015, 09:47   #1
JorJi_3!P
AnyKey`щик
 
Регистрация: 07.07.2015
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Плохо Требуется помощь по скрипту (основы)

Здравствуйте, проблема такая, нужна функция возвращающая несколько переменных, а именно переменную типа Vector2 и типа GameObject, как я понимаю тут, как и в Blitz 3d функция возвращает только чтото одно. Стало быть надо использовать структуру (struct) или городить две функции? Подскажите пожалуйста, где посмотреть такой вариант использования структур, в Blitz'е был такой хороший туториал по type, а тут я в гугл как не забью struct он меня посылает к уже существующим структурам, а не к созданию собственных...
(Offline)
 
Старый 07.07.2015, 09:53   #2
JorJi_3!P
AnyKey`щик
 
Регистрация: 07.07.2015
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Требуется помощь по скрипту (основы)

Т.е. я вижу готовое решение так: чтобы получить с функции вектор пишем функция(входные данные).вектор, а чтобы получить игровой объект функция(входные данные).игровой объект...
(Offline)
 
Старый 07.07.2015, 10:11   #3
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,097
Написано 1,029 полезных сообщений
(для 2,590 пользователей)
Ответ: Требуется помощь по скрипту (основы)

Ключевое слово "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;
}
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Эти 2 пользователя(ей) сказали Спасибо Taugeshtu за это полезное сообщение:
JorJi_3!P (07.07.2015), St_AnGer (07.07.2015)
Старый 07.07.2015, 10:27   #4
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 742
Написано 339 полезных сообщений
(для 948 пользователей)
Ответ: Требуется помощь по скрипту (основы)

Метод(функция) может вернуть больше одной переменной с использованием out.

public void DoSomething(int argumentout Vector2 vectorout GameObject obj
{
vector = new Vector2(argumentargument);
obj = new GameObject();

Потом вызываешь метод, например так:
Vector2 vect;
GameObject go;
DoSomething(1out vectout go); 
Ну или ref вместо out, да.
(Offline)
 
Сообщение было полезно следующим пользователям:
JorJi_3!P (07.07.2015)
Старый 07.07.2015, 10:46   #5
JorJi_3!P
AnyKey`щик
 
Регистрация: 07.07.2015
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Требуется помощь по скрипту (основы)

Большое спасибо, тему можно закрыть =)
(Offline)
 
Закрытая тема


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 19:58.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com