2015-07-15 4 views
0

Я пытаюсь создать поля ввода в Unity 3D программно. Я преуспел в этом при запуске в эмуляторе редактора, но попытка встроить в устройство Android просто приводит к ошибке. "BCE0005: Неизвестный идентификатор: 'AssetDatabase'." По-видимому, этот AssetDataBase доступен только в редакторе.Unity set default image sprite programatically

inputFieldGO.AddComponent.<Image>(); 
    var image : Image = inputFieldGO.GetComponent.<Image>(); 
    image.sprite = AssetDatabase.GetBuiltinExtraResource.<Sprite>("UI/Skin/InputFieldBackground.psd"); 
    image.type = Image.Type.Sliced; 

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

ответ

2

AssetDatabase - это класс Editor, что означает, что его можно использовать в редакторе, но не в устройствах.

Unity Scripting Reference For AssetDatabase

Image


Решение:

У Вас есть свои файлы на папке ресурсов? Попробуйте это:

Sprite newSprite = Resources.Load<Sprite>(spritePath); 

От: Unity Scripting Reference for Resources.Load

+0

Я попытался image.sprite = Resources.Load ("UI/кожа/InputFieldBackground.psd"), как Sprite; так как я использую UnityScript. Это не дает ошибки, но также не загружает спрайт. Я не знаю, как я могу получить доступ к этому спрайту, без AssetDatabase, и я не могу переместить его в папку ресурсов, потому что у меня нет спрайта! – Waltari

+0

То, что я пытаюсь сказать, это то, что я не могу установить спрайт по умолчанию для поля ввода, потому что у меня нет спрайта поля ввода по умолчанию. Я не знаю, где взять спрайт по умолчанию, чтобы я мог переместить его в папку ресурсов. – Waltari

+0

Итак, сначала вы должны поместить свой файл psd в свою папку «Ресурсы», то есть ресурсы/UI/Skin/InputFieldBackground.psd Затем выберите свой файл psd в Unity, и вы увидите его свойства в Inspector, выберите «Тип текстуры: Sprite» (или Advanced). Это создаст спрайт, связанный с вашим файлом psd. Затем попробуйте загрузить спрайт, используя: Resources.Load («UI/Skin/InputFieldBackground») в качестве спрайта. Дайте нам знать, как все прошло! – mayo