Сериализация в файл

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

Сериализация в файл

Сообщение Kira 14 ноя 2012, 23:04

Не получается создать файл, с сериализацией класса.
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;
using System.Collections.Generic;
public static class NewL
{

        // Use this for initialization
        public static void CreateIn()
        {
                edIndex index=ScriptableObject.CreateInstance<edIndex>();
                AssetDatabase.CreateAsset(index, Application.dataPath+"/ind.ass");
        }
}

Синтаксис:
Используется csharp
using UnityEngine;
using System.IO;
using System.Collections;
using System.Collections.Generic;
[System.Serializable]
public class edIndex : ScriptableObject {

        // Use this for initialization
       
       
         int a=10;
        public List<int> ls =new List<int>();
       
        public void AddInt(int a)
        {
                Debug.Log("Set a"+a);
                ls.Add(a);
        }
}

Скрытый текст:
Couldn't create asset file!
UnityEditor.AssetDatabase:CreateAsset(Object, String)
NewL:CreateIn() (at Assets/MyAsset/Character Controller/NewL.cs:15)
temps:OnInspectorGUI() (at Assets/MyAsset/Character Controller/Editor/temps.cs:22)
UnityEditor.DockArea:OnGUI()

Скрытый текст:
UnityException: Creating asset at path E:/projects/new2d/Assets/ind.ass failed.
NewL.CreateIn () (at Assets/MyAsset/Character Controller/NewL.cs:15)
temps.OnInspectorGUI () (at Assets/MyAsset/Character Controller/Editor/temps.cs:22)
UnityEditor.InspectorWindow.DrawEditors (Boolean isRepaintEvent, UnityEditor.Editor[] editors, Boolean eyeDropperDirty) (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/Inspector/InspectorWindow.cs:888)
UnityEditor.InspectorWindow.OnGUI () (at C:/BuildAgent/work/14194e8ce88cdf47/Editor/Mono/Inspector/InspectorWindow.cs:243)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
Kira
UNIт
 
Сообщения: 55
Зарегистрирован: 14 ноя 2012, 22:35

Re: Сериализация в файл

Сообщение IDoNotExist 15 ноя 2012, 05:08

Во первых, почему расширение ассета .ass? (полная Ж)
Во вторых, почему в пути используется Application.dataPath, это глобальный путь к папке проекта, а должен быть локальным.
В третьих, читайте документацию, там все написано http://docs.unity3d.com/Documentation/ScriptReference/AssetDatabase.CreateAsset.html.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Сериализация в файл

Сообщение Kira 15 ноя 2012, 06:57

ass потому что подумалось из за длинного расширения. Было .asset; :).
Не ужели это во первых? :-??
Справку я читал, и что же я делаю не правильно? Тем более что [unity 3D] говорит о не возможности какой то, но конкретной ошибки нет.
В одной программке (2DtoolKit) там используется именно глобальный путь :-??
Kira
UNIт
 
Сообщения: 55
Зарегистрирован: 14 ноя 2012, 22:35

Re: Сериализация в файл

Сообщение Kira 15 ноя 2012, 07:13

IDoNotExist :ymparty: оказалось все дела в путях. :D
AssetDatabase.CreateAsset(index, "Assets/ind.asset"); :-bd
Kira
UNIт
 
Сообщения: 55
Зарегистрирован: 14 ноя 2012, 22:35


Вернуться в Editor

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1