Массивы
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 41 из 85.
Массив хранит подряд много значений одного типа. После типа указываются квадратные скобки, а значения записываются в фигурных скобках:
int[] scores = { 10, 25, 7 };У каждого значения есть индекс — его место в последовательности; отсчёт начинается с 0: scores[0] — это 10, scores[1] — 25, а scores[2] — 7. scores.Length показывает количество значений — в данном случае 3. Обращение к scores[3] остановит скрипт с исключением IndexOutOfRangeException: четвёртого значения нет.
Цикл for, выполняющийся до Length, перебирает все значения независимо от содержимого массива:
for (int i = 0; i < scores.Length; i++)
{
Debug.Log("Score " + i + ": " + scores[i]);
}Если индекс не нужен, цикл foreach короче: foreach (int s in scores) { Debug.Log(s); } выполняется один раз для каждого значения по порядку.
Задание
СреднеСоздай городской силуэт из 7 башен с помощью массива и цикла.
- Добавь
6fи2fв конецheights:{ 2f, 5f, 3f, 1f, 4f, 6f, 2f }. - Замени строку
PlaceTowerнаfor (int i = 0; i < heights.Length; i++). - Внутри него вызови
PlaceTower(i * 1.5f - 4.5f, heights[i]);.
Нажми «Играть»: семь башен разной высоты выстроятся в ряд. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Skyline : MonoBehaviour
{
void Start()
{
float[] heights = { 2f, 5f, 3f, 1f, 4f };
// Разместите по одной башне для каждого значения высоты.
PlaceTower(-4.5f, heights[0]);
}
void PlaceTower(float x, float height)
{
GameObject tower = GameObject.CreatePrimitive(PrimitiveType.Cube);
tower.name = "Tower";
tower.transform.position = new Vector3(x, height / 2, 0);
tower.transform.localScale = new Vector3(1, height, 1);
tower.GetComponent<Renderer>().material.color = new Color(0.35f, 0.45f, 0.7f);
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity