Вы можете добавить любой тип актива в пакет активов. Сценарий (файл .cs) не сможет быть включен в пакет активов.
То, как вы можете добавить все сценарии /материалы / .., которые вам нужны, зависит от того, что включено в вашу сцену, это хранить их все в папке. Затем вы можете назначить всю папку для AssetBundle tag
, как и должна быть ваша сцена.
Ваша сцена, которую клиент должен загрузить, должна находиться в том же активе -bundle tag .
Примечание: если вы не можете сохранить их все в одной папке, просто назначьте их тег связки ресурсов вручную для каждого актива (или подпапки), который выхотите добавить в пакет.
Теперь вы можете запустить метод создания пакета для вас, как показано ниже:
[MenuItem("Bundles/Create all bundles")]
static void BuildAllAssetBundles()
{
BuildPipeline.BuildAssetBundles(Path.Combine(Application.dataPath, "AssetBundleLocation"), BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);
}
Там - дополнительная информация о Как создать пакет активов .
Теперь все необходимые файлы должны храниться в файле пакета активов, «Редактировать», кроме файлов сценариев . Взгляните на UnityEngine.AssetBundle класс для загрузки и выгрузки пакетов / ресурсов.
Edit
Что на самом деле будет работать, чтобы включитьваш файл сценария в комплекте ресурсов должен записывать ваш код в файл TextAsset (.txt).
Эти файлы будут содержать строку после загрузки из пакета активов.
AssetBundle ab = AssetBundle.LoadFromFile(Path.Combine(Application.dataPath, "StreamingAssets/exampleassetbundle")); // Your asset-bundle path
TextAsset textAsset = ab.LoadAsset<TextAsset>(ab.GetAllAssetNames()[0]); // In my example I only have 1 file in the asset-bundle, the TextAsset
string flatCode = textAsset.text;
Теперь дело в том, что вы должны скомпилировать код плоской строки в настоящий класс C #. Это называется Компиляция во время выполнения .
Существует множество обучающих программ о том, как это сделать, , как в этом стековом посте .
Это немного сложно,но будет делать то, что вы хотите.
Примечание: IOS и Android могут не позволить вам скомпилировать код во время выполнения, поэтому в зависимости от вашей целевой платформы вам придется продолжить исследование.