Автомат
vinto Дата: Ср, 30 Янв 2013, 22:52 | Сообщение # 1
Сообщений: 103
Награды:
0
Репутация:
14
Статус: Offline
Помогите пожалуйста , делаю скрипт автомата, пули через ригидбоди а не лучом, воот такой значит вопрос, навысокой скорости они проходят через колайдер'ы а воот какие есть возможности это исправить кроме того как увеличить колайдер пули.!?
Сообщение Помогите пожалуйста , делаю скрипт автомата, пули через ригидбоди а не лучом, воот такой значит вопрос, навысокой скорости они проходят через колайдер'ы а воот какие есть возможности это исправить кроме того как увеличить колайдер пули.!? Автор - vinto Дата добавления - 30 Янв 2013 в 22:52
seaman Дата: Ср, 30 Янв 2013, 23:00 | Сообщение # 2
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
1. Уменьшить время FixedTime (готовьтесь к еще большим тормозам) 2. Пускать от пули вперед рейкаст, чтобы заранее определять возможность столкновения. (тормоза увеличатся, но не так как в первом случае.) 3. Сделать как все нормальные люди - не ригидбоди, а рейкастом. ЗЫ: Вы можете в полете пулю разглядеть? Ну ведь нет же! Так нафига Вам ригидбоди?
Сообщение 1. Уменьшить время FixedTime (готовьтесь к еще большим тормозам) 2. Пускать от пули вперед рейкаст, чтобы заранее определять возможность столкновения. (тормоза увеличатся, но не так как в первом случае.) 3. Сделать как все нормальные люди - не ригидбоди, а рейкастом. ЗЫ: Вы можете в полете пулю разглядеть? Ну ведь нет же! Так нафига Вам ригидбоди? Автор - seaman Дата добавления - 30 Янв 2013 в 23:00
commandoby Дата: Ср, 30 Янв 2013, 23:47 | Сообщение # 3
Unity 3D Free
Сообщений: 836
Награды:
3
Репутация:
211
Статус: Offline
Можно попробовать кодом во время проникновения отталкивать в противоположном направлении. (Скорее всего тоже будут тормоза)
Блог.
Сообщение Можно попробовать кодом во время проникновения отталкивать в противоположном направлении. (Скорее всего тоже будут тормоза) Автор - commandoby Дата добавления - 30 Янв 2013 в 23:47
Hunjeth Дата: Чт, 31 Янв 2013, 02:04 | Сообщение # 4
Сообщений: 354
Награды:
1
Репутация:
112
Статус: Offline
кстати можно и через рейкаст сделать полет пули полукругом
Сообщение отредактировал Hunjeth - Чт, 31 Янв 2013, 02:05
Сообщение кстати можно и через рейкаст сделать полет пули полукругом Автор - Hunjeth Дата добавления - 31 Янв 2013 в 02:04
seaman Дата: Чт, 31 Янв 2013, 11:22 | Сообщение # 5
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Цитата
Можно попробовать кодом во время проникновения отталкивать в противоположном направлении.
И как Вы определите это "время проникновения"? Физика дискретна. На больших скоростях не определяется факт проникновения => и время. Интерполяция/экстраполяция расчета физики не помогает. Уменьшение FixedTime помогает, но надо очень сильно уменьшать. Я даже в арканоиде делал по второму способу - иначе шарик нет-нет да и пролетал биту.
Сообщение Цитата
Можно попробовать кодом во время проникновения отталкивать в противоположном направлении.
И как Вы определите это "время проникновения"? Физика дискретна. На больших скоростях не определяется факт проникновения => и время. Интерполяция/экстраполяция расчета физики не помогает. Уменьшение FixedTime помогает, но надо очень сильно уменьшать. Я даже в арканоиде делал по второму способу - иначе шарик нет-нет да и пролетал биту.Автор - seaman Дата добавления - 31 Янв 2013 в 11:22
Левша Дата: Чт, 31 Янв 2013, 12:01 | Сообщение # 6
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Цитата (vinto )
делаю скрипт автомата
А вы когда нибудь из автомата стреляли ? делать реалистичную баллистику нет никакого смысла, в реальности разброс пуль перекрывает всю физику. Разве что для симулятора снайпера еще стоило бы повозится.
X.cor.R (Prologue)
Сообщение Цитата (vinto )
делаю скрипт автомата
А вы когда нибудь из автомата стреляли ? делать реалистичную баллистику нет никакого смысла, в реальности разброс пуль перекрывает всю физику. Разве что для симулятора снайпера еще стоило бы повозится.Автор - Левша Дата добавления - 31 Янв 2013 в 12:01
thiefbrother Дата: Чт, 31 Янв 2013, 12:08 | Сообщение # 7
Сообщений: 74
Награды:
0
Репутация:
10
Статус: Offline
ссылка на "реалистичный выстрел"
commandoby Дата: Чт, 31 Янв 2013, 16:56 | Сообщение # 8
Unity 3D Free
Сообщений: 836
Награды:
3
Репутация:
211
Статус: Offline
Цитата (seaman )
И как Вы определите это "время проникновения"?
Я всего лишь предположил.
Блог.
Сообщение Цитата (seaman )
И как Вы определите это "время проникновения"?
Я всего лишь предположил.Автор - commandoby Дата добавления - 31 Янв 2013 в 16:56
vinto Дата: Чт, 31 Янв 2013, 22:14 | Сообщение # 9
Сообщений: 103
Награды:
0
Репутация:
14
Статус: Offline
нуу ок, тогда вот как, как рэйкастом сообщить только данному объекты -n hp, а то если я делаю так hit.collider.gameObject.Ai.helth -=n, то уменьшается хп всех объектов го со скриптом AI
Сообщение нуу ок, тогда вот как, как рэйкастом сообщить только данному объекты -n hp, а то если я делаю так hit.collider.gameObject.Ai.helth -=n, то уменьшается хп всех объектов го со скриптом AI Автор - vinto Дата добавления - 31 Янв 2013 в 22:14
seaman Дата: Чт, 31 Янв 2013, 23:02 | Сообщение # 10
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Нормально изучить что такое static. И не использовать их где ни попадя.
Сообщение Нормально изучить что такое static. И не использовать их где ни попадя. Автор - seaman Дата добавления - 31 Янв 2013 в 23:02
vinto Дата: Чт, 31 Янв 2013, 23:23 | Сообщение # 11
Сообщений: 103
Награды:
0
Репутация:
14
Статус: Offline
ну вот статик переменная хпс она равна хп в скрипте аи, и когда луч проходиь изменяется именно эта переменная хпс, но все равно хпс уменьшается у всех обладателей скрипта аиДобавлено (31.01.2013, 23:23) --------------------------------------------- через send message знаю делают как то
Сообщение ну вот статик переменная хпс она равна хп в скрипте аи, и когда луч проходиь изменяется именно эта переменная хпс, но все равно хпс уменьшается у всех обладателей скрипта аиДобавлено (31.01.2013, 23:23) --------------------------------------------- через send message знаю делают как то
Автор - vinto Дата добавления - 31 Янв 2013 в 23:23
Левша Дата: Пт, 01 Фев 2013, 01:29 | Сообщение # 12
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Цитата (vinto )
через send message
да не обязательно, сделаю свою переменную public и обращайся к ней.
X.cor.R (Prologue)
Сообщение Цитата (vinto )
через send message
да не обязательно, сделаю свою переменную public и обращайся к ней.Автор - Левша Дата добавления - 01 Фев 2013 в 01:29
thiefbrother Дата: Пт, 01 Фев 2013, 09:15 | Сообщение # 13
Сообщений: 74
Награды:
0
Репутация:
10
Статус: Offline
согласен. Переменной будет проще. Код
public AI_HEALTH_PALM AIHP; //скрипт хп руки //твой райкаст if(hit.collider.gameobject.tag=="palm"){ AIHP.health-=30;}
Сообщение отредактировал thiefbrother - Пт, 01 Фев 2013, 09:15
Сообщение согласен. Переменной будет проще. Код
public AI_HEALTH_PALM AIHP; //скрипт хп руки //твой райкаст if(hit.collider.gameobject.tag=="palm"){ AIHP.health-=30;}
Автор - thiefbrother Дата добавления - 01 Фев 2013 в 09:15
seaman Дата: Пт, 01 Фев 2013, 12:21 | Сообщение # 14
Гуру
Сообщений: 1748
Награды:
10
Репутация:
660
Статус: Offline
Цитата
ну вот статик переменная хпс она равна хп в скрипте аи, и когда луч проходиь изменяется именно эта переменная хпс, но все равно хпс уменьшается у всех обладателей скрипта аи
И? Вы хоть чуток поизучали что такое статик? Нет! Естественно она будет изменяться во всех экземплярах скрипта. Это: Код
public AI_HEALTH_PALM AIHP; //скрипт хп руки //твой райкаст if(hit.collider.gameobject.tag=="palm"){ AIHP.health-=30;}
лажа. Вы меняете переменную не на том объекте в который луч ударил, а на каком-то "сферическом в вакууме". Код
if(hit.collider.tag=="palm") { hit.collider.gameobject.GetComponent<AI_HEALTH_PALM>().health-=30; }
Сообщение Цитата
ну вот статик переменная хпс она равна хп в скрипте аи, и когда луч проходиь изменяется именно эта переменная хпс, но все равно хпс уменьшается у всех обладателей скрипта аи
И? Вы хоть чуток поизучали что такое статик? Нет! Естественно она будет изменяться во всех экземплярах скрипта. Это: Код
public AI_HEALTH_PALM AIHP; //скрипт хп руки //твой райкаст if(hit.collider.gameobject.tag=="palm"){ AIHP.health-=30;}
лажа. Вы меняете переменную не на том объекте в который луч ударил, а на каком-то "сферическом в вакууме". Код
if(hit.collider.tag=="palm") { hit.collider.gameobject.GetComponent<AI_HEALTH_PALM>().health-=30; }
Автор - seaman Дата добавления - 01 Фев 2013 в 12:21
thiefbrother Дата: Пт, 01 Фев 2013, 13:28 | Сообщение # 15
Сообщений: 74
Награды:
0
Репутация:
10
Статус: Offline
seaman , верно. Мой косяк, сглупил.
Сообщение seaman , верно. Мой косяк, сглупил.Автор - thiefbrother Дата добавления - 01 Фев 2013 в 13:28
vinto Дата: Пт, 01 Фев 2013, 22:31 | Сообщение # 16
Сообщений: 103
Награды:
0
Репутация:
14
Статус: Offline
хмм, ну вот я поменял значит fixed time в настройках проекта с 0.02 на 0.01 и теперь и все колизии цепляет, и тормозов нету. Добавлено (01.02.2013, 22:31) --------------------------------------------- аа и ещё как вот эту часть перевести на js "().health-=30;" т.к выдаёт ошибку вот скрипт Код
#pragma strict public var script : AI; function Start () { } function Update () { var ray = Camera.main.ScreenPointToRay (Input.mousePosition); var hit : RaycastHit; if(Input.GetKey("mouse 0")){ if (Physics.Raycast (ray, hit, 100)) { if(hit.collider.gameObject.tag=="Enemy"){ hit.collider.gameObject.GetComponent("AI").hp -=300; Debug.DrawLine (ray.origin, hit.point); } } } }
Сообщение хмм, ну вот я поменял значит fixed time в настройках проекта с 0.02 на 0.01 и теперь и все колизии цепляет, и тормозов нету. Добавлено (01.02.2013, 22:31) --------------------------------------------- аа и ещё как вот эту часть перевести на js "().health-=30;" т.к выдаёт ошибку вот скрипт Код
#pragma strict public var script : AI; function Start () { } function Update () { var ray = Camera.main.ScreenPointToRay (Input.mousePosition); var hit : RaycastHit; if(Input.GetKey("mouse 0")){ if (Physics.Raycast (ray, hit, 100)) { if(hit.collider.gameObject.tag=="Enemy"){ hit.collider.gameObject.GetComponent("AI").hp -=300; Debug.DrawLine (ray.origin, hit.point); } } } }
Автор - vinto Дата добавления - 01 Фев 2013 в 22:31
Левша Дата: Пт, 01 Фев 2013, 22:55 | Сообщение # 17
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
Cкрипт АI должен иметь публичную переменную hp . А строчка: public var script : AI; в последней версии твоего скрипта уже не нужна.
X.cor.R (Prologue)
Сообщение Cкрипт АI должен иметь публичную переменную hp . А строчка: public var script : AI; в последней версии твоего скрипта уже не нужна. Автор - Левша Дата добавления - 01 Фев 2013 в 22:55
vinto Дата: Пт, 01 Фев 2013, 23:20 | Сообщение # 18
Сообщений: 103
Награды:
0
Репутация:
14
Статус: Offline
аа, тык публичную переменую надо вешать на го у которого отнимаем хп...мм.. спасибо) попробую.Добавлено (01.02.2013, 23:13) --------------------------------------------- сделал так, добавил public var к скрипту противника, убрал из скрипта автомата, но всё таже ошибка
Добавлено (01.02.2013, 23:20) --------------------------------------------- всёё, сделал, изменил сторчки кода
Код
hit.collider.gameObject.GetComponent("AI").hp на hit.collider.gameObject.GetComponent(AI).hp
Сообщение аа, тык публичную переменую надо вешать на го у которого отнимаем хп...мм.. спасибо) попробую.Добавлено (01.02.2013, 23:13) --------------------------------------------- сделал так, добавил public var к скрипту противника, убрал из скрипта автомата, но всё таже ошибка
Добавлено (01.02.2013, 23:20) --------------------------------------------- всёё, сделал, изменил сторчки кода
Код
hit.collider.gameObject.GetComponent("AI").hp на hit.collider.gameObject.GetComponent(AI).hp
Автор - vinto Дата добавления - 01 Фев 2013 в 23:20
Левша Дата: Пт, 01 Фев 2013, 23:47 | Сообщение # 19
Черный Волк
Сообщений: 7257
Награды:
30
Репутация:
3313
Статус: Offline
В принципе на Js и так и так должно работать... странно...
X.cor.R (Prologue)
Сообщение В принципе на Js и так и так должно работать... странно... Автор - Левша Дата добавления - 01 Фев 2013 в 23:47
vinto Дата: Сб, 02 Фев 2013, 00:07 | Сообщение # 20
Сообщений: 103
Награды:
0
Репутация:
14
Статус: Offline
д тык вот и мне это странным показалось..ну ды ладно)
Сообщение д тык вот и мне это странным показалось..ну ды ладно) Автор - vinto Дата добавления - 02 Фев 2013 в 00:07