Memo of the Stars

This is the path you should walk, they say.

需求

Unity原生的Inspector对ScriptableObject的支持不是太好,如果把SO命名为数字Id,或是为SO配置Image,都难以预览,更好的方法是为SO专门重写一个Inspector,但太过复杂,于是参考RPG Maker Unite的数据库菜单,使用UI Toolkit写一个小窗口,将要管理的SO列表化,预览内容,点击定位到对应SO文件。

Read more »

需求

就算可以批量勾选Addressable并管理分组,也希望有一个自动化工具,可以在导入Asset的时候就标记Addressable并根据所在文件夹分组。

于是用到AssetPostprocessor。

Read more »

问题

突然发现项目里CS文件的编码是GBK,文件里的中文字符在Inspector上也显示为乱码。

于是用C#写一个工具,编译后丢到Assets目录里,批量转换。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System.Text;

string path = Directory.GetCurrentDirectory();

string[] fileDir = Directory.GetFiles(path, "*.cs", SearchOption.AllDirectories);

foreach (var item in fileDir)
{
string content = File.ReadAllText(item, Encoding.Default);
File.WriteAllText(item, content, Encoding.UTF8);
}

Console.WriteLine("Done!");
Console.ReadKey();

然而从Unity创建CS文件,文件的编码格式仍然是GBK。那么就要修改设置,以UTF-8的编码保存。

Read more »

在Plugins文件夹导入以下dll:

  • Microsoft.Bcl.AsyncInterfaces
  • System.Buffers
  • System.Memory
  • System.Numerics.Vectors
  • System.Runtime.CompilerServices.Unsafe
  • System.Text.Encodings.Web
  • System.Text.Json
  • System.Threading.Tasks.Extensions

问题

为编辑器创建鼠标拖拽事件时,如果判定方式是点击鼠标左键:

private void OnMouseDown(MouseDownEvent evt)
{
    if (evt.button == (int)MouseButton.LeftMouse)
    {
        DragAndDrop.PrepareStartDrag();
        DragAndDrop.SetGenericData("BlackboardField", this);
        DragAndDrop.StartDrag("Dragging Blackboard Field.");
        evt.StopPropagation();
    }
}

会出现报错:

Drags can only be started from MouseDown or MouseDrag events.

Read more »
0%