OnCollisionEnter, OnCollisionExit, OnCollisionStay
Goodgenius Дата: Вт, 17 Сен 2013, 16:05 | Сообщение # 1
Сообщений: 86
Награды:
0
Репутация:
6
Статус: Offline
Привет всем! В общем решил сделать вот такую штуку : при прикосновении со стеной игроком запускается анимация или еще что нибуть, но что то не получается определить столкновение игрока со стеной. Может кто поможет исправить что нибуть или объяснит толково. Вот скрипт : JS Код
function OnCollisionEnter(collision : Collision) { animation.Play("Anim_Hand_Contact", PlayMode.StopAll); } function OnCollisionExit (collision : Collision) { animation.Play("Anim_Hand_NoContact", PlayMode.StopAll); }
Сообщение Привет всем! В общем решил сделать вот такую штуку : при прикосновении со стеной игроком запускается анимация или еще что нибуть, но что то не получается определить столкновение игрока со стеной. Может кто поможет исправить что нибуть или объяснит толково. Вот скрипт : JS Код
function OnCollisionEnter(collision : Collision) { animation.Play("Anim_Hand_Contact", PlayMode.StopAll); } function OnCollisionExit (collision : Collision) { animation.Play("Anim_Hand_NoContact", PlayMode.StopAll); }
Автор - Goodgenius Дата добавления - 17 Сен 2013 в 16:05
Hunjeth Дата: Вт, 17 Сен 2013, 17:04 | Сообщение # 2
Сообщений: 354
Награды:
1
Репутация:
112
Статус: Offline
опиши подробней что ты на данный момент используешь CharacterController или RigidBody
Сообщение опиши подробней что ты на данный момент используешь CharacterController или RigidBody Автор - Hunjeth Дата добавления - 17 Сен 2013 в 17:04
Dushik Дата: Вт, 17 Сен 2013, 23:41 | Сообщение # 3
Сообщений: 22
Награды:
0
Репутация:
0
Статус: Offline
Используй лучше OnTriggerEnter вместо коллизий.
Сообщение Используй лучше OnTriggerEnter вместо коллизий. Автор - Dushik Дата добавления - 17 Сен 2013 в 23:41
Goodgenius Дата: Ср, 18 Сен 2013, 08:37 | Сообщение # 4
Сообщений: 86
Награды:
0
Репутация:
6
Статус: Offline
Я использую Character Controller, а с триггерами не очень эффективный вариант получится.
Сообщение Я использую Character Controller, а с триггерами не очень эффективный вариант получится. Автор - Goodgenius Дата добавления - 18 Сен 2013 в 08:37
Hunjeth Дата: Ср, 18 Сен 2013, 12:46 | Сообщение # 5
Сообщений: 354
Награды:
1
Репутация:
112
Статус: Offline
попробуй : OnControllerColliderHit Код
http://docs.unity3d.com/Documentation/ScriptReference/CharacterController.OnControllerColliderHit.html
или Physics.SphereCast Код
http://docs.unity3d.com/Documentation/ScriptReference/Physics.SphereCast.html
Сообщение попробуй : OnControllerColliderHit Код
http://docs.unity3d.com/Documentation/ScriptReference/CharacterController.OnControllerColliderHit.html
или Physics.SphereCast Код
http://docs.unity3d.com/Documentation/ScriptReference/Physics.SphereCast.html
Автор - Hunjeth Дата добавления - 18 Сен 2013 в 12:46
Goodgenius Дата: Ср, 18 Сен 2013, 16:31 | Сообщение # 6
Сообщений: 86
Награды:
0
Репутация:
6
Статус: Offline
Я попросил помочь именно с этими способами: OnCollisionEnter, OnCollisionExit, OnCollisionStay. Другие меня пока не интересуют.
Сообщение Я попросил помочь именно с этими способами: OnCollisionEnter, OnCollisionExit, OnCollisionStay. Другие меня пока не интересуют. Автор - Goodgenius Дата добавления - 18 Сен 2013 в 16:31
Hunjeth Дата: Ср, 18 Сен 2013, 22:00 | Сообщение # 7
Сообщений: 354
Награды:
1
Репутация:
112
Статус: Offline
Код
function OnCollisionEnter(collision : Collision) { for (var contact : ContactPoint in collision.contacts) { if (contact.point.y > (transform.position.y + CharacterController.center.y) - ((CharacterController.height / 2) - CharacterController.radius) && contact.point.y <= (transform.position.y + CharacterController.center.y) + ((CharacterController.height / 2) - CharacterController.radius)) { Debug.Log("Side"); break; } } }
Сообщение отредактировал Hunjeth - Ср, 18 Сен 2013, 22:17
Сообщение Код
function OnCollisionEnter(collision : Collision) { for (var contact : ContactPoint in collision.contacts) { if (contact.point.y > (transform.position.y + CharacterController.center.y) - ((CharacterController.height / 2) - CharacterController.radius) && contact.point.y <= (transform.position.y + CharacterController.center.y) + ((CharacterController.height / 2) - CharacterController.radius)) { Debug.Log("Side"); break; } } }
Автор - Hunjeth Дата добавления - 18 Сен 2013 в 22:00