各种笔记备忘

使用NGUI做游戏,首先要封装一个简单的底层,该底层需要确定以下方面的做法:

(1)分辨率策略;

(2)层级管理方案;

(3)国际化支持;

(4)模态、非模态的实现;

(5)通用对话框。

ScriptableObject数据存储及序列化:

(1)创建一个类,用于记录数据逻辑:

using UnityEngine;
using System.Collections;

public class DataHolder : ScriptableObject
{
    public int IntValue = 1;
    public string StrValue = "str";
    public float FValue = 0f;
}

  数据类必须继承自ScriptableObject,才能用于序列化。

(2)根据数据类创建本地asset,用于数据存储:

using UnityEngine;
using UnityEditor;
using System.Collections;

public class CreateScripteObject
{
    [MenuItem("MyEditor/CreateScripteObject")]
    public static void Execute()
    {
        DataHolder data = ScriptableObject.CreateInstance<DataHolder>();
        data.IntValue = 100;

        // 此函代码可以保证asset创建的唯一性,如果连续两次调用会生成test.asset和test 1.asset,如果没有此行代码,则每次都会直接覆盖
        string SavePath = AssetDatabase.GenerateUniqueAssetPath("Assets/Resources/test.asset");
        AssetDatabase.CreateAsset(data, SavePath);

        AssetDatabase.Refresh();
    }
}

(3)运行时读取数据的方法:

using UnityEngine;
using System.Collections;

public class TestScripteObject : MonoBehaviour 
{
    private void OnGUI()
    {
        if(GUILayout.Button("ReadData", GUILayout.Width(300)))
        {
            DataHolder data = Resources.Load<DataHolder>("test");
            Debug.Log(data.IntValue);
        }
    }

}

 删除所有不可见字符:

s = Regex.Replace(line, @"[^\x21-\x7E]", "")

Unity编辑器crash日志查询:

OS X
  ~/Library/Logs/Unity/
Windows XP
  C:\Documents and Settings\(current user)\Local Settings\temp\UnityWebPlayer\log
Vista/Windows 7
  C:\Users\(current user)\AppData\Local\Temp\Low\UnityWebPlayer\log

原文地址:https://www.cnblogs.com/sifenkesi/p/3093000.html