Форум программистов, компьютерный форум, киберфорум
Наши страницы
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
sillyQuestions
0 / 0 / 0
Регистрация: 11.06.2017
Сообщений: 10
1

Наслаиваются 2 коллайдера

30.06.2017, 10:06. Просмотров 834. Ответов 2
Метки нет (Все метки)

Нужно, чтобы была платформа, через которую снизу, сбоку... можно перепрыгнуть, но сверху она удерживает.
теперь нужно, чтобы для игрока это работало, как я описал, а враг просто проходит по ней.
Насколько допустимо сделать в платформе 2 объекта с разными слоями, оба имеют коллайдер. первый слой взаимодействует лишь с игроко - он меняет isTrigger на тру/фолс. Второй слой лишь с врагами - у него чисто коллайдер без тригера.

сейчас ипользую что-то вроде этого
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class throughPlatform : MonoBehaviour {
 
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.name == "foot")
            GetComponent<Collider2D>().isTrigger = false;
        if (collision.gameObject.layer == 9)
        {
            collision.GetComponent<Rigidbody2D>().gravityScale = 0;
            collision.GetComponent<Rigidbody2D>().velocity = Vector2.zero;
        }
    }
    private void OnTriggerExit2D(Collider2D collision)
    {
        if (collision.gameObject.name == "foot")
            GetComponent<Collider2D>().isTrigger = true;
        if (collision.gameObject.layer == 9)
        {
            collision.GetComponent<Rigidbody2D>().gravityScale = 1;
        }
    }
да layer.toString() почему-то не работает, позже буду разбираться

Добавлено через 10 минут
плюс, если оба _враг уже на платформе, а игрок нет: плаформа все равно должна работать, как я описал.
P.S. изменить платформу добавлением объектов в unity не предлагайте, нужно, чтобы все проходило в tiled,а
в unity лишь добавить скрипт, мзменить коллайдер на триггер
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2017, 10:06
Ответы с готовыми решениями:

Игнорирование коллайдера
Доброго времени суток, у меня на кубе стоит коллайдер, при маленькой скорости...

Получение координат коллайдера
Здравствуйте , допустим у меня на объекте есть коллайдер , как мне узнать...

Реверберация в пределах коллайдера
Возможно формировать отражение звука от коллайдера помещения допустим ? или...

Некорректная работа коллайдера
Экспортирую из 3D Max простой объект, созданный на основе одного единственного...

Получить координаты вершин коллайдера
Пытаюсь получить координаты вершин Polygon Collider2D, если брать одну вершину,...

2
Prog_maker
395 / 353 / 140
Регистрация: 23.01.2011
Сообщений: 985
30.06.2017, 14:23 2
Лучший ответ Сообщение было отмечено sillyQuestions как решение

Решение

Нафига огород городить, Platform effector 2D решит все проблемы
1
sillyQuestions
0 / 0 / 0
Регистрация: 11.06.2017
Сообщений: 10
30.06.2017, 14:56  [ТС] 3
спасибо. я уже несколь вариантов попробовал, а оказалось всё...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2017, 14:56

Проверка столкновения луча и коллайдера
RaycastHit2D hit = Physics2D.Raycast(transform.position, -Vector2.up, 1.2f); ...

Как узнать координаты коллайдера
я нашел в документации BoxCollider2D.size Описание Ширина и высота...

Изменение размера коллайдера из скрипта
Доброго времени суток. Такой вопрос: Хочу сделать анимацию того, как персонаж...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru