OnCollisionEnter, OnCollisionExit, OnCollisionStay - Форум Игроделов
Вт, 04 Фев 2025, 03:02 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
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
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025