forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Вопросы от новичка (http://forum.boolean.name/showthread.php?t=15809)

pax 18.12.2011 12:23

Ответ: Вопросы от новичка
 
Чтобы не дергалась - поместить расчет положения с рейкастом в LateUpdate. А по нормали - присвой значение нормали одному из векторов трансформа, например transform.up = hit.normal

pie 18.12.2011 18:21

Ответ: Вопросы от новичка
 
Вложений: 2
Пытаюсь сделать вылетающую гильзу. В объекте оружия создаю две точки:
1 - откуда будут вылетать гильзы;
2 - откуда будет действовать выталкивающая сила на них.

Вот кусок кода.

Код:

var gilzCreate : Transform;
var gilzForce : Transform;
private var gilz : GameObject;
private var glrig : Rigidbody;

Код:

function GilzCreating () {
gilz = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
gilz.transform.localScale = Vector3(0.02, 0.02, 0.02);
gilz.transform.position = gilzCreate.position;
glrig = gilz.AddComponent(Rigidbody);
glrig.collider.enabled = false;
glrig.AddForceAtPosition(gilzForce.position, gilzCreate.position, 3);
}

Там где выделенно красным я пытался вводить и таким образом: .localPosition. Проблема в том что начало силы действующей на гильзу привязанна к глобальной координате. Если отойти чуть севее то гильзы вылетают в левую сторону (скрин 1), если чуть правее то в право (скрин 2). Вот такая проблема. Сила привязывается к глобальной переменной, а нужно к локальной.

pax 18.12.2011 18:29

Ответ: Вопросы от новичка
 
Попробуй так:
PHP код:

glrig.AddForceAtPosition(gilzForce.position gilzCreate.position); 


RegIon 18.12.2011 18:31

Ответ: Вопросы от новичка
 
так пересчитай ЛОКАЛЬНУЮ в глобальную позицию....

RegIon 18.12.2011 18:32

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 214466)
Попробуй так:
PHP код:

glrig.AddForceAtPosition(gilzForce.position gilzCreate.position); 


ну блиииигн

pie 18.12.2011 18:35

Ответ: Вопросы от новичка
 
Ты имеешь ввиду вот так?

Код:

glrig.AddForceAtPosition(gilzForce.position - gilzCreate.position, gilzCreate.position, 3);
Но зачем? Их позиции и так не совпадают. Сделал так - не заработало. Кроме того гильзы просто вниз начали падать)))

pie 18.12.2011 18:35

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от Костян (Сообщение 214467)
так пересчитай ЛОКАЛЬНУЮ в глобальную позицию....

Объясни как.

RegIon 18.12.2011 18:42

Ответ: Вопросы от новичка
 
ну как...я думаю если объект спаунится в какой-то точке относительно другого,то как тебе,точка силы+точка объекта...
или точка спауна+ точка объекта....
__________________________________
пример: я стою,у меня есть рогатка.Я натянул резинку ... рука тянущая в какой-то точке оказалась...если я буду перемещатся, а рука которая тянет останется В ТОЙ ЖЕ глобальной точке-вектор направления после отпускания изменится.
Вывод-перемещение руки вместе с телом...

Цитата:

Сообщение от Костян (Сообщение 214297)
http://uregion.ucoz.ru/fpstest/WebPlayer.html вот как сделать нормальный целеуказатель,как развернуть Плайн с текстурой в зависимости от нормали(RayCasthit.normal)?
ПЕРЕЗАЛИЛ

переделал...

pax 18.12.2011 19:10

Ответ: Вопросы от новичка
 
Сорри, я забыл метод переименовать
PHP код:

glrig.AddForce(gilzForce.position gilzCreate.position); 


pie 19.12.2011 01:43

Ответ: Вопросы от новичка
 
Не помогло(((

pax 19.12.2011 07:47

Ответ: Вопросы от новичка
 
А если добавить твою тройку последним параметром функции? Не знал что ява позволяет энамы числами задавать, непонятно,что за параметр выбран типа приложения силы.

RegIon 19.12.2011 10:25

Ответ: Вопросы от новичка
 
на яве писать---ууу>>:(

Aikon 19.12.2011 23:57

Ответ: Вопросы от новичка
 
Какой то глюк с коллизиями:

Был кубик с Rigid Body + Box Collider, который падал на платформу с Mesh Collider. И вот в один прекрасный момент сообщения OnCollisionEnter/Stay/Exit перестают генерироваться для скрипта, висящего на платформе. Если на платформу повесить Rigidbody, то все начинает приходить.

Что происходит, идеи будут?

Unity 3.4.2f3

WISHMASTER35 20.12.2011 00:02

Ответ: Вопросы от новичка
 
Aikon, замечал такую фигню. Я из-за этого не смог определить стоит объект на полу или нет. Только это наверно не баг, а оптимизация. Хорошо бы было, если объекты не сдвинулись с места, то проверка коллизии не вызывается. Так и не понял как сделать проверку стоит объект на полу или нет)

pax 20.12.2011 00:18

Ответ: Вопросы от новичка
 
Попробуйте использовать http://unity3d.com/support/documenta...dy.WakeUp.html


Часовой пояс GMT +4, время: 11:55.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot