Страница 2 из 4
Re: Производитеьность скриптов
Добавлено:
23 май 2009, 15:53
Const_47
Я думаю, что сила жабы в ее общедоступности. Своего рода общий связующий язык Юнити разработчиков для понимания друг-друга. Посмотрите на форум большинство примеров на жабе
Сам я выбрал С# по причине супермегаудобства
программирования на студии.
Что мне не совсем нравится в жабе, так это вот такой тип - var. Если код достаточно большой я перестаю в нем находить "концы" Я хошу четко понимать с каким типом имею дело.
Re: Производитеьность скриптов
Добавлено:
23 май 2009, 16:04
Neodrop
Вот для этого (помимо оптимизации) и стоит объявлять переменные непосредственно. типа :
var count : int;
Ну а на форуме, на нём быстрее писать код, для примеров. Быстрее накидать прототип алгоритма. Поэтому, как связующий язык, он очень удобен. Ну и для маленьких, "быстронаписуемых" проектов он замечателен, ничего не скажу. Когда листинг не превышает 500 строк (обобщённо во всех скриптах), ну 1000, Жаба незаменима и молниеносна ( если нет ещё привычки писать Напильником(Шарпом)).
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
23 май 2009, 16:05
Neodrop
Переименовал тему. Так прикольнее.
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
23 май 2009, 16:10
gnoblin
В .NET 3.0 - "var" тоже есть
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
23 май 2009, 16:17
Neodrop
В
Юнити мы работаем на
.NET 2.0
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 10:47
wild_r
Вот руки добрались до замеров, а вот как вычислить текущее время? Гугл не помог.
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 11:54
gnoblin
Просто текущую дату? Я выкладывал кусок кода.
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 11:58
wild_r
Нет, количество милисекунд от начала года. Чтобы было не слишком большое число и было количество едениц времени от некой точки отсчета. Буду рад, если код сюда кинете.
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 13:39
gnoblin
Что ты конкретно хочешь сделать?
Время, прошедшее с запуска игры, хранится в одной из переменных класса Time.
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 17:25
Neodrop
Перед началом вычисления записываешь Time.realtimeSienceStartUp
После завершения, получаешь опять и вычитаешь одно из другого.
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 18:18
wild_r
Да, я именно эту функцию и искал, спасибо!
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 19:56
wild_r
С директивой #pragma strict ругаеться на то, что у гейм обжетка нет рендера.
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 21:00
Neodrop
Строку в студию.
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 21:42
wild_r
Без директивы все работает, правда разброс времени большой.
- Код: Выделить всё
#pragma strict
@script ExecuteInEditMode()
function Start() {
var objs = new Array();
var i : Number;
var j : Number;
var k : Number;
var hash = new Array();
objs = FindObjectsOfType(GameObject);
j =Time.realtimeSinceStartup;
for(i=0; i<objs.length;i++){
hash[i]=1;
}
for(i=0; i<objs.length; i++) {
if(hash[i]==1){
for (k=j; k<objs.length; k++) {
if((hash[k]==1)&&(objs[k].renderer.sharedMaterial.GetTexture("_MainTex").name == objs[i].renderer.sharedMaterial.GetTexture("_MainTex").name)){
objs[k].renderer.sharedMaterial = objs[i].renderer.sharedMaterial;
hash[k]=0;
}
}
}
}
Debug.Log(Time.realtimeSinceStartup - j);
}
Re: Производитеьность скриптов. Жаба против Напильника.
Добавлено:
28 май 2009, 21:54
Neodrop
Чтобы работала директива, нужно перед этой строкой :
if((hash[k]==1)&&(objs[k].renderer.sharedMaterial.GetTexture("_MainTex").name == objs[i].renderer.sharedMaterial.GetTexture("_MainTex").name))
Добавить это:
var go : GameObject = objs[k] as GameObject; (если не прокатит просто (GameObject)objs[k];)
и в строке заменить if((hash[k]==1)&&(objs[k].renderer.sharedMaterial.GetTexture
на if((hash[k]==1)&&(go.renderer.sharedMaterial.GetTexture