2015-05-16 4 views
0

Как я могу ссылаться на определенные файлы в ProjectView, которые еще не были предварительно помечены или созданы в игре? Я знаю, что могу использовать Resource.Load, но я также всегда вижу, что люди говорят, что не используют этот метод, если это вообще возможно.Как я могу ссылаться на определенные файлы в ProjectView?

В частности, я пытаюсь создать метод, который создает пустой объект с помощью AudioSource и воспроизводит любой звуковой файл, который я ему скажу. Я не хочу, чтобы каждый компонент Audioclip был заранее (плюс у меня было бы миллион готовых к концу), но мне нужно сказать, какой звуковой файл играть.

Также, метод .Load работает вне ресурсов? Я не хочу менять свою иерархию ProjectView, если могу ее избежать, но Resource.Load работает только с файлами, которые находятся в папке ресурсов.

ответ

1

Пробуйте код, указанный ниже. Вам нужно указать имя клипа, который вы хотите воспроизвести. Конечно, этот клип должен находиться внутри папки «Ресурсы».

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

public class LoadingSample : MonoBehaviour { 

    public void LoadASoundClip (string clipName) { 

     //Instantiate a new empty GameObject 
     GameObject go = new GameObject(); 

     //Add an Audio Source component, and get it 
     go.AddComponent<AudioSource>(); 
     var audioSource = go.GetComponent<AudioSource>(); 

     //Assign the clip for the audio source 
     audioSource.clip = Resources.Load<AudioClip>(clipName); 
    } 
} 

Кроме того, почему вы не должны использовать ресурсы. Это интенсивный метод, но он усердно работает, и это не повредит вашей игре.

Существуют и другие средства для загрузки и выгрузки файлов, такие как FileStream, но они более сложны и просто добавляют к работам, которые необходимо выполнить. Однако это позволяет хранить файлы вне папки «Ресурсы».

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

Если вы не используете папку «Ресурсы», вы должны убедиться, что эти файлы, которые у вас нет на сцене, вручную добавляются в сборку.

+0

Спасибо, это очень полезно! – greyspace

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