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

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

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

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

Ответ
 
Опции темы
Старый 28.04.2015, 14:32   #2086
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Ага, все отлично.
Спасибо, Nex!
(Offline)
 
Ответить с цитированием
Старый 28.04.2015, 15:02   #2087
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Можно вывести в дебаг точнее так:
Debug.Log(pos.ToString("F8")); 
По умолчанию формат для вывода F1
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ILonion (01.05.2015)
Старый 28.04.2015, 16:48   #2088
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 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
ILonion
ПроЭктировщик
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от LLI.T.A.L.K.E.R. Посмотреть сообщение
кажется при деактивации функция проигрывания звука сбрасывается, хотя скример врубается..
когда убираю деактивацию зоны - звук играет.

не хочется, конечно, выводить на таймер отрубания зоны...

ЧЯДНТ?
Используй http://docs.unity3d.com/ScriptRefere...ipAtPoint.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (28.04.2015)
Старый 30.04.2015, 02:08   #2091
ILonion
ПроЭктировщик
 
Регистрация: 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
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Достаточно вызвать
xclass.function( abс
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ILonion (01.05.2015)
Старый 01.05.2015, 02:03   #2093
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Спасибо, pax!
Подскажите еще некоторые моменты новичку, пожалуйста:

У меня ситуация, когда одномерный массив постоянного размера очень часто создается и удаляется (эмпирически). Как я понял в c# лучше всего не удалять, а переиспользовать. Значит мне необходимо его очищать. Вопрос: каким макаром это делать максимально быстро? Array.Clear()? или при каждом новом заходе new? (если второе, то что происходит с предыдущим массивом? он становится бессылочным и его будет ждать GC?);

И еще малый вопрос: использую переменные значений как public static, чтобы их можно было использовать из разных фалов скриптов. Постоянно приходится перед переменной писать имя класса. Есть ли возможность писать только переменную? Использовать namespace? Чего-то юнити не хочет переваривать это дело в данном случае.
(Offline)
 
Ответить с цитированием
Старый 01.05.2015, 10:59   #2094
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

1. Массив можно объявить в классе, а не в функции, там он останется на все время жизни класса. Все массивы, создаваемые как временные в методах удаляются сборщиком мусора время от времени, если на них не сохраняется ссылок.

2. C# строго типизированный язык, все переменные классов должны иметь конкретный тип. Только для переменных методов допускается использовать ключевое слово var с одновременной инициализацией переменной, которое означает, что переменная будет типа значения выражения справа от равно.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ILonion (01.05.2015)
Старый 01.05.2015, 12:39   #2095
ILonion
ПроЭктировщик
 
Регистрация: 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
seaman
Знающий
 
Регистрация: 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 за это полезное сообщение:
ILonion (01.05.2015), Nex (18.03.2016)
Старый 01.05.2015, 13:13   #2097
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от seaman Посмотреть сообщение
Файл 2:
using myVar xclass.var;
public class 
void dest()
{
    
myVar  += 1;

https://msdn.microsoft.com/en-us/lib...=vs.71%29.aspx
Алиасы возможны только для пространств имен и для типов.

Сообщение от ILonion Посмотреть сообщение
Ох, я совершенно криво задал вопрос, из-за этого возникла путаница.
Во втором вопросе имел ввиду следующее:

в файле 1 я объявляю переменные:

public class void xclass()
{
public static 
int var;

в файле 2 использую переменную:

public class void dest()
{
xclass.var += 1;

Имеется ли возможность отбросить 'xclass' в файле 2 ?
Нет, не может быть глобальных переменных в C#, могут быть глобальные переменные классов.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ILonion (01.05.2015)
Старый 01.05.2015, 16:11   #2098
ILonion
ПроЭктировщик
 
Регистрация: 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
h1dd3n
Бывалый
 
Аватар для h1dd3n
 
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений
(для 450 пользователей)
Ответ: Вопросы от новичка

Сообщение от ILonion Посмотреть сообщение
единожды или каждый раз? У меня такой пробел в понимании, который хочется устранить)
единожды.

инициализацией занимается среда выполнения (то есть это не программеры unity писали).

насколько я понимаю конечному разработчику неизвесто когда будут проинициализированы такие поля, однако 100% гарантировано что это будет сделано до первого обращения.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ILonion (01.05.2015)
Старый 01.05.2015, 18:08   #2100
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Теперь понятно. Спасибо!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


Часовой пояс GMT +4, время: 08:43.


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