Четверг, 18 Апреля 2024, 22:18

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Почему не инициируется массив?
Почему не инициируется массив?
alexsilentДата: Понедельник, 14 Февраля 2022, 21:46 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
Почему не инициируется массив?
Я пробовал, как такую строку:
Код
Sprite[] Sprites = new Sprite[]{rend.sprite};

так и просто
Код
Sprite[] Sprites = new Sprite[1];

Но в любом случае длинна массива в инспекторе всегда равна нулю, пока я сам вручную не увеличу его длину.

Код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[ExecuteInEditMode]
public class Spritex : MonoBehaviour {

    public bool UPDATE = true;
    private SpriteRenderer rend;
    public Sprite[] Sprites;
    public int Frame; // Current Frame
    public int oldFrame;

    void Awake() {
  rend = GetComponent<SpriteRenderer>();
    }
    

    // Update is called once per frame
    void Update () {
  if (UPDATE) {
   UPDATE = false;
   if (Sprites.Length < 1) {
    print("okay!");
    Sprite[] Sprites = new Sprite[]{rend.sprite};
   }
   if (Sprites[0] == null) Sprites[0] = rend.sprite; // ЗДЕСЬ ОШИБКА, ибо не инициирован массив
  }
    }
}
drcrackДата: Понедельник, 14 Февраля 2022, 23:10 | Сообщение # 2
старожил
Сейчас нет на сайте
Код
Sprite[] Sprites = new Sprite[]{rend.sprite};

замени на
Код
Sprites = new Sprite[]{rend.sprite};
alexsilentДата: Вторник, 15 Февраля 2022, 01:47 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
drcrack, жесть, такая простая опечатка. Спасибо!
Странно, что компилятор не пожаловался что я инициирую ещё раз то что и так уже инициировано...
drcrackДата: Вторник, 15 Февраля 2022, 02:12 | Сообщение # 4
старожил
Сейчас нет на сайте
Цитата
Странно, что компилятор не пожаловался что я инициирую ещё раз то что и так уже инициировано...

с точки зрения компилятора все норм, ты просто создаешь локальную переменную в области видимости твоего блока if { } а вот за ним по этому имени ты обращается снова к полю
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Почему не инициируется массив?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг