Автомат - Форум Игроделов
Пн, 10 Фев 2025, 11:31 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Автомат
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)
делаю скрипт автомата

А вы когда нибудь из автомата стреляли ? smile делать реалистичную баллистику нет никакого смысла, в реальности разброс пуль перекрывает всю физику.
Разве что для симулятора снайпера еще стоило бы повозится.


X.cor.R (Prologue)
 
Сообщение
Цитата (vinto)
делаю скрипт автомата

А вы когда нибудь из автомата стреляли ? smile делать реалистичную баллистику нет никакого смысла, в реальности разброс пуль перекрывает всю физику.
Разве что для симулятора снайпера еще стоило бы повозится.

Автор - Левша
Дата добавления - 31 Янв 2013 в 12:01
thiefbrotherДата: Чт, 31 Янв 2013, 12:08 | Сообщение # 7
 
Сообщений: 74
Награды: 0
Репутация: 10
Статус: Offline
ссылка на "реалистичный выстрел"
 
Сообщениессылка на "реалистичный выстрел"

Автор - thiefbrother
Дата добавления - 31 Янв 2013 в 12:08
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
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025