Nano Hash - криптовалюты, майнинг, программирование

Unity — Как создать экземпляр актива?

    void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        Instantiate(Resources.Load("Objects/Level"), transform.position, Quaternion.identity);
    }
}

Это мой код. У меня есть объект с именем Level.obj внутри папки с именем «Объекты» внутри моих активов. Я пытаюсь создать его поверх родительского объекта этого скрипта с помощью Resources.Load("Object/Level"). Я считаю, что сам этот код правильный, потому что консоль возвращает сообщение «Объект, который вы хотите создать, имеет значение null». при нажатии пробела. Что, вероятно, неправильно, так это мои параметры, в частности, как я пытался найти объект. Я также пробовал Assets/Objects/Level, в отличие от того, что указано выше.

19.02.2019

  • Если вы хотите использовать Resource.Load, ваш ресурс должен находиться в папке с именем Ресурсы. Если вы хотите оставить свой код таким, каким он был, вам нужно будет поместить свой ресурс по пути Assets/Resources/Objects/Level.obj. 19.02.2019

Ответы:


1

Добавьте общедоступное поле public GameObject myPrefab; к вашему моноповедению.

Установите его в редакторе, выбрав свой игровой объект и воспользовавшись инспектором.

Создайте его как Instantiate(myPrefab, transform.position, Quaternion.identity);

Вам нужен Resource.Load только в том случае, если ваш актив не существует во время компиляции. И, как сказано в документации, Resources.Load требует, чтобы ресурс находился в папке Resources.

https://docs.unity3d.com/ScriptReference/Resources.Load.html

19.02.2019
  • Всякий раз, когда я пытаюсь отговорить кого-то от использования Resources.Load, я предпочитаю указывать на Unity Официальные ресурсы Best Practices, в котором прямо сказано: Не используйте его. 19.02.2019

  • 2

    Я никогда не использовал Resources.Load(), поэтому вы можете попытаться добиться чего-то другого, но то, что я делаю для «порождения» объектов, заключается в том, чтобы превратить их в префаб (просто перетащите ваш объект в свои активы). Затем объявите общедоступное поле GameObject в своем скрипте, перетащите в него префаб в инспекторе, а затем создайте экземпляр, как вы это сделали.

    Надеюсь, это помогло!

    19.02.2019
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..