|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
28.04.2015, 14:32
|
#2086
|
ПроЭктировщик
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений (для 25 пользователей)
|
Ответ: Вопросы от новичка
Ага, все отлично.
Спасибо, Nex!
|
(Offline)
|
|
28.04.2015, 15:02
|
#2087
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Можно вывести в дебаг точнее так:
Debug.Log(pos.ToString("F8"));
По умолчанию формат для вывода F1
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
28.04.2015, 16:48
|
#2088
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Вопросы от новичка
void OnTriggerEnter(Collider collobj) // если игрок вошёл
audio.PlayOneShot(ZoneSound); // играть звук зоны
ScreamHUD.GetComponent<MeshRenderer>().enabled=tru e; // показать скример
gameObject.SetActive(false); // деактивирую зону
|
кажется при деактивации функция проигрывания звука сбрасывается, хотя скример врубается..
когда убираю деактивацию зоны - звук играет.
не хочется, конечно, выводить на таймер отрубания зоны...
ЧЯДНТ?
|
(Offline)
|
|
28.04.2015, 17:06
|
#2089
|
ПроЭктировщик
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений (для 25 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pax
Можно вывести в дебаг точнее так:
Debug.Log(pos.ToString("F8"));
По умолчанию формат для вывода F1
|
хм, интересно. форматирование с точностью до 8 и произвольно знаков.
спасибо, pax!
P.S. pax, спасибо большое за труды по blitz-unity wiki !!
|
(Offline)
|
|
28.04.2015, 18:16
|
#2090
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от LLI.T.A.L.K.E.R.
кажется при деактивации функция проигрывания звука сбрасывается, хотя скример врубается..
когда убираю деактивацию зоны - звук играет.
не хочется, конечно, выводить на таймер отрубания зоны...
ЧЯДНТ?
|
Используй http://docs.unity3d.com/ScriptRefere...ipAtPoint.html
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
30.04.2015, 02:08
|
#2091
|
ПроЭктировщик
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений (для 25 пользователей)
|
Ответ: Вопросы от новичка
Такой вопрос:
У меня есть метод с неск. входящими параметрами (из разных файлов скриптов, других методов и пр.):
xclass.function(param1,param2,param3)
Unity отказывается вызывать этот метод таким способом:
xclass.function(int param1 = a,int param2 = b,int param3 = с), сообщая Unexpected symbol `param1', expecting `.'
заставляет делать так:
int param1;
int param2;
int param3;
xclass.function(param1 = a,param2 = b,param3 = с)
или так:
int param1 = a;
int param2 = b;
int param3 = c;
xclass.function(param1,param2,param3), сыпя предупреждениями о переменных которые никогда не используются.
Что я делаю неправильно в первом варианте, и можно ли как-то его добиться? Или хотя бы сделать так, чтобы предупреждения не сыпались, так как они у меня будут плодиться как тараканы в дальнейшем...
?
|
(Offline)
|
|
30.04.2015, 07:12
|
#2092
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Достаточно вызвать
xclass.function( a, b, с)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.05.2015, 02:03
|
#2093
|
ПроЭктировщик
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений (для 25 пользователей)
|
Ответ: Вопросы от новичка
Спасибо, pax!
Подскажите еще некоторые моменты новичку, пожалуйста:
У меня ситуация, когда одномерный массив постоянного размера очень часто создается и удаляется (эмпирически). Как я понял в c# лучше всего не удалять, а переиспользовать. Значит мне необходимо его очищать. Вопрос: каким макаром это делать максимально быстро? Array.Clear()? или при каждом новом заходе new? (если второе, то что происходит с предыдущим массивом? он становится бессылочным и его будет ждать GC?);
И еще малый вопрос: использую переменные значений как public static, чтобы их можно было использовать из разных фалов скриптов. Постоянно приходится перед переменной писать имя класса. Есть ли возможность писать только переменную? Использовать namespace? Чего-то юнити не хочет переваривать это дело в данном случае.
|
(Offline)
|
|
01.05.2015, 10:59
|
#2094
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
1. Массив можно объявить в классе, а не в функции, там он останется на все время жизни класса. Все массивы, создаваемые как временные в методах удаляются сборщиком мусора время от времени, если на них не сохраняется ссылок.
2. C# строго типизированный язык, все переменные классов должны иметь конкретный тип. Только для переменных методов допускается использовать ключевое слово var с одновременной инициализацией переменной, которое означает, что переменная будет типа значения выражения справа от равно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.05.2015, 12:39
|
#2095
|
ПроЭктировщик
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений (для 25 пользователей)
|
Ответ: Вопросы от новичка
Ох, я совершенно криво задал вопрос, из-за этого возникла путаница.
Во втором вопросе имел ввиду следующее:
в файле 1 я объявляю переменные:
public class void xclass() { public static int var; }
в файле 2 использую переменную:
public class void dest() { xclass.var += 1; }
Имеется ли возможность отбросить 'xclass' в файле 2 ?
|
(Offline)
|
|
01.05.2015, 12:52
|
#2096
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Вопросы от новичка
Файл 2:
using myVar = xclass.var; public class void dest() { myVar += 1; }
https://msdn.microsoft.com/en-us/lib...=vs.71%29.aspx
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо seaman за это полезное сообщение:
|
|
01.05.2015, 13:13
|
#2097
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от seaman
|
Алиасы возможны только для пространств имен и для типов.
Сообщение от ILonion
Ох, я совершенно криво задал вопрос, из-за этого возникла путаница.
Во втором вопросе имел ввиду следующее:
в файле 1 я объявляю переменные:
public class void xclass() { public static int var; }
в файле 2 использую переменную:
public class void dest() { xclass.var += 1; }
Имеется ли возможность отбросить 'xclass' в файле 2 ?
|
Нет, не может быть глобальных переменных в C#, могут быть глобальные переменные классов.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.05.2015, 16:11
|
#2098
|
ПроЭктировщик
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений (для 25 пользователей)
|
Ответ: Вопросы от новичка
Большое спасибо, всё понятно!
Но в связи с этим возник еще один вопрос:
файл1, основной скрипт с апдейт:
public class MAIN : MonoBehaviour { void start() { } void update() { ///... xclass.xfunction() ///... } }
файл2, какой-то метод:
public class xclass : MonoBehaviour { public static int param1 = 154; public static int param2 = 234; public static int param3; public static void xfunction() { ///... param3 = param2 + param1; ///... } }
В данном случае при вызове xfunction() из update(), переменные param1,2,3 будут объявляться и занимать собой память - когда? при вызове метода или перед первым запуском? они будут объявляться единожды или каждый раз? У меня такой пробел в понимании, который хочется устранить)
|
(Offline)
|
|
01.05.2015, 17:22
|
#2099
|
Бывалый
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений (для 450 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от ILonion
единожды или каждый раз? У меня такой пробел в понимании, который хочется устранить)
|
единожды.
инициализацией занимается среда выполнения (то есть это не программеры unity писали).
насколько я понимаю конечному разработчику неизвесто когда будут проинициализированы такие поля, однако 100% гарантировано что это будет сделано до первого обращения.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.05.2015, 18:08
|
#2100
|
ПроЭктировщик
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений (для 25 пользователей)
|
Ответ: Вопросы от новичка
Теперь понятно. Спасибо!
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:43.
|