Как проверить столкновение между игроком и конкретным объектом TileBase в Unity?

Короче:

  • Сборка хранится как файлы .EXE или .DLL.
  • Пространство имен - это способ группировки имен типов и уменьшения вероятности столкновений имен .

Советы.

Сборка содержит набор типов (например, l'assembly System содержит много пространств имен, включенных System, System.IO, ecc). Как правило, имя сборки совпадает с именем пространства, которое оно содержит, но не всегда.

Другой пример сборок и пространств имен.

Assembly 1 (CoreAssembly.DLL)

Содержит пространства имен Namespace1.subnamespace1

Сборка 2 (ExtensionCoreAssembly.DLL)

Содержит пространства имен Namespace1.subnamespace1

Возможно использование названия сборки, которое содержит различные пространства имен, и расширяет существующую сборку с помощью другой сборки по этой методике.

ОПРЕДЕЛЕНИЯ.

Ассембли

Сборка представляет собой набор типов и ресурсов, которые образуют логическую единицу функциональности. Все типы в .NET Framework должны существовать в сборках; общая среда исполнения не поддерживает типы вне сборок. Каждый раз, когда вы создаете приложение Microsoft Windows®, службу Windows, библиотеку классов или другое приложение с Visual Basic .NET, вы создаете единую сборку. Каждая сборка хранится как файл .exe или .dll. Примечание. Хотя технически возможно создавать сборки, которые охватывают несколько файлов, вряд ли вы будете использовать эту технологию в большинстве ситуаций.

Пространства имен

Еще один способ организовать ваш Visual Basic .NET код осуществляется с помощью пространств имен. Пространства имен не заменяют сборки, а второй организационный метод, который дополняет сборки. Пространства имен - это способ группировки имен типов и уменьшения вероятности столкновений имен. Пространство имен может содержать как другие пространства имен, так и типы. Полное имя типа включает комбинацию пространств имен, которые содержат этот тип.

Ссылка: http://msdn.microsoft.com/en-us/library/ms973231.aspx

1
задан Aironas 16 January 2019 в 19:58
поделиться

1 ответ

Сначала вы должны добавить слои к вашим объектам. Простой пример - добавить слой «TileBase» или «Tile» в ваши объекты TileBase.

Затем вы можете позволить своему Игроку сталкиваться только с определенными вещами, а НЕ с вашей картой тайлов. Смотрите матрицу столкновений для этого.

Затем измените свой код следующим образом:

void OnCollisionEnter2D(Collision2D col)
{
    var tilebase = col.GetComponent<TileBass>();
    if (tilebase != null)
    {
        Debug.Log(tilebase.gameObject.name);
    }
}
0
ответ дан Immorality 16 January 2019 в 19:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: