Показать сообщение отдельно
Старый 02.10.2006, 20:31   #10
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Re: Методы оптимизации

Сообщение от Michael
1) "Отброс невозможных вариантов"
Нетрудно заметить, что при нажатии кнопки мыши мы можем выделить только одного юнита, значим мы можем изменить код функции так:
 
Function PickUnit()
  Pick=CameraPick(camera,MouseX(),MouseY())
  For u.unit = each unit
    If Pick=u\model SelectUnit(u)
    Return
  Next
End Function
Итак, мы в среднем увеличили скорость выполнения цикла в два раза!
Ну в "среднем" из цикла производится выход сразу же после проверки первого элемента... работать правильно будет вот так:
[highlight=blitzbasic]
Function PickUnit()
Pick=CameraPick(camera,MouseX(),MouseY())
For u.unit = each unit
If Pick=u\model
SelectUnit(u)
Return
EndIf
Next
End Function
[/highlight]
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием