|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
18.12.2011, 12:23
|
#106
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Чтобы не дергалась - поместить расчет положения с рейкастом в LateUpdate. А по нормали - присвой значение нормали одному из векторов трансформа, например transform.up = hit.normal
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
18.12.2011, 18:21
|
#107
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопросы от новичка
Пытаюсь сделать вылетающую гильзу. В объекте оружия создаю две точки:
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). Вот такая проблема. Сила привязывается к глобальной переменной, а нужно к локальной.
|
(Offline)
|
|
18.12.2011, 18:29
|
#108
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Попробуй так:
glrig.AddForceAtPosition(gilzForce.position - gilzCreate.position);
|
(Offline)
|
|
18.12.2011, 18:31
|
#109
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
так пересчитай ЛОКАЛЬНУЮ в глобальную позицию....
|
(Offline)
|
|
18.12.2011, 18:32
|
#110
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pax
Попробуй так:
glrig.AddForceAtPosition(gilzForce.position - gilzCreate.position);
|
|
(Offline)
|
|
18.12.2011, 18:35
|
#111
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопросы от новичка
Ты имеешь ввиду вот так?
glrig.AddForceAtPosition(gilzForce.position - gilzCreate.position, gilzCreate.position, 3);
Но зачем? Их позиции и так не совпадают. Сделал так - не заработало. Кроме того гильзы просто вниз начали падать)))
|
(Offline)
|
|
18.12.2011, 18:35
|
#112
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Костян
так пересчитай ЛОКАЛЬНУЮ в глобальную позицию....
|
Объясни как.
|
(Offline)
|
|
18.12.2011, 18:42
|
#113
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
ну как...я думаю если объект спаунится в какой-то точке относительно другого,то как тебе,точка силы+точка объекта...
или точка спауна+ точка объекта....
__________________________________
пример: я стою,у меня есть рогатка.Я натянул резинку ... рука тянущая в какой-то точке оказалась...если я буду перемещатся, а рука которая тянет останется В ТОЙ ЖЕ глобальной точке-вектор направления после отпускания изменится.
Вывод-перемещение руки вместе с телом...
Сообщение от Костян
|
переделал...
|
(Offline)
|
|
18.12.2011, 19:10
|
#114
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сорри, я забыл метод переименовать
glrig.AddForce(gilzForce.position - gilzCreate.position);
|
(Offline)
|
|
19.12.2011, 01:43
|
#115
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопросы от новичка
Не помогло(((
|
(Offline)
|
|
19.12.2011, 07:47
|
#116
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
А если добавить твою тройку последним параметром функции? Не знал что ява позволяет энамы числами задавать, непонятно,что за параметр выбран типа приложения силы.
|
(Offline)
|
|
19.12.2011, 10:25
|
#117
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
на яве писать---ууу
|
(Offline)
|
|
19.12.2011, 23:57
|
#118
|
ПроЭктировщик
Регистрация: 12.02.2011
Сообщений: 131
Написано 23 полезных сообщений (для 52 пользователей)
|
Ответ: Вопросы от новичка
Какой то глюк с коллизиями:
Был кубик с Rigid Body + Box Collider, который падал на платформу с Mesh Collider. И вот в один прекрасный момент сообщения OnCollisionEnter/Stay/Exit перестают генерироваться для скрипта, висящего на платформе. Если на платформу повесить Rigidbody, то все начинает приходить.
Что происходит, идеи будут?
Unity 3.4.2f3
|
(Offline)
|
|
20.12.2011, 00:02
|
#119
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Aikon, замечал такую фигню. Я из-за этого не смог определить стоит объект на полу или нет. Только это наверно не баг, а оптимизация. Хорошо бы было, если объекты не сдвинулись с места, то проверка коллизии не вызывается. Так и не понял как сделать проверку стоит объект на полу или нет)
|
(Offline)
|
|
20.12.2011, 00:18
|
#120
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:58.
|