2016-06-24 6 views
0

Как я могу спрятать объекты за другими объектами в единстве 2D динамически?Скрыть игровые объекты динамически в Unity 2D

Пример: У меня есть объект кактуса в моей сцене и вы хотите разместить случайное количество предметов коллекционирования за кактусом, чтобы предметы коллекционирования были видны игроку. Если возможно, я также хочу уметь определять степень видимости.

http://imgur.com/Fd2AENS

+0

Вы можете изменить значение глубины для кактусов и коллекционирования. Или вы можете просто обновить значение Z. – Cabrra

ответ

1

Если вы используете орфографическую камеру, то значение оси Z не будет иметь значение. У орфографической камеры нет никакого чувства глубины. То, что вы хотите манипулировать, - это свойство слоя сортировки для компонента рендеринга sprite.

0

Сделайте все объекты, которые вы хотите спрятать детей кактусов. Я предполагаю, что каждый ребенок имеет компонент рендеринга спрайта, поскольку вы используете видимые объекты 2d.

Порядок спрайтов определяется атрибутом «порядок сортировки». так что вот фрагмент кода, который дает всем другим объектам более низкий порядок, поэтому они идут за кактусом.

SpriteRenderer[] renderers = GetComponentInChildren<SpriteRenderer>(); 

for(int i =0 ; i< renderers.Length; i++){ 
    renderers [i].sortingOrder = -1 * i; 
} 

этот код изменяет порядок детей, но если вы хотите, чтобы сделать их невидимыми, используйте transform.enabled = ложь для каждого ребенка

Смежные вопросы