нечеткое столкновение стрелы.

Физика в Unity

нечеткое столкновение стрелы.

Сообщение NikitossFly 20 июл 2013, 21:49

Всем привет. Проблема такая, есть стрела, которая вылетает вперед под воздействием Velocity , но при попадании в объект не всегда происходит столкновение особенно, когда угол между и стрелой и объектом около 90 градусов, стрела становится просто бесплотным призраком. пытался решить проблему следующими способами:
1) RigidBody->Collision Detection->Continious Dynamic

2)
Edit -> Project Settings -> Physics -> Min Penetration For Penalty.
Чем это значение меньше, тем точнее коллизии.

Edit -> Project Settings -> Physics -> Solver Iteration Count
Чем это значение выше, тем точнее расчёт коллизий.

Edit -> Project Settings -> Time -> Fixed Timestep
Чем это значение меньше, тем чаще вызывается цикл обработки физики.

К сожалению мои махинации не принесли успеха, вот скрипт, который прикреплен к стреле, если это имеет значение.

Синтаксис:
Используется javascript
var arrow:GameObject;
function Update () {


var direction = transform.TransformDirection(Vector3.forward);

var hit : RaycastHit;

if (Physics.Raycast(transform.position, direction,hit,10)&&(hit.collider.gameObject.name != ("TRIGGER_AGR")))

{

var instantiatedArrow : GameObject = Instantiate (arrow, hit.point, transform.rotation);  
//Quaternion.FromToRotation(Vector3.back, hit.normal)
instantiatedArrow.transform.parent = hit.collider.gameObject.transform;
Destroy( gameObject );
instantiatedArrow.transform.Translate(0,0,-0.5);
if (hit.collider.gameObject.name == ("Cube")||hit.collider.gameObject.name == ("Cube(Clone)") )
{
  var s : sledovanie = hit.collider.gameObject.GetComponent(sledovanie);
        s.hp--;
}    
}
}


Подскажите пожалуйста, что делать
NikitossFly
UNITрон
 
Сообщения: 153
Зарегистрирован: 31 май 2013, 16:06

Re: нечеткое столкновение стрелы.

Сообщение waruiyume 20 июл 2013, 22:30

NikitossFly писал(а):2)
Edit -> Project Settings -> Physics -> Min Penetration For Penalty.
Чем это значение меньше, тем точнее коллизии.

Edit -> Project Settings -> Physics -> Solver Iteration Count
Чем это значение выше, тем точнее расчёт коллизий.

Вы неправильно поняли, что они делают.

Подскажите пожалуйста, что делать

Либо двигайте стрелу "руками", предварительно пуская луч, в новое положение, либо сохраняйте предыдущее положение и пускайте из него луч, в текущее.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: нечеткое столкновение стрелы.

Сообщение NikitossFly 20 июл 2013, 22:46

waruiyume писал(а):
NikitossFly писал(а):2)
Edit -> Project Settings -> Physics -> Min Penetration For Penalty.
Чем это значение меньше, тем точнее коллизии.

Edit -> Project Settings -> Physics -> Solver Iteration Count
Чем это значение выше, тем точнее расчёт коллизий.

Вы неправильно поняли, что они делают.

Подскажите пожалуйста, что делать

Либо двигайте стрелу "руками", предварительно пуская луч, в новое положение, либо сохраняйте предыдущее положение и пускайте из него луч, в текущее.

так эта стрела и приводится в движение из другого скрипта при помощи velocity,этот скрипт лишь фиксирует столкновение при подлете к цели на 20.этот скрипт привязывается к летящей стреле и при подлете к цели на 20 создает воткнутую стрелу, а эту уничтожает.
NikitossFly
UNITрон
 
Сообщения: 153
Зарегистрирован: 31 май 2013, 16:06


Вернуться в PhysX

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2