字符串拼接问题的最佳解决方案
ZString:零分配的.NET Core和Unity字符串构建器
ZString
项目地址:https://gitcode.com/gh_mirrors/zs/ZString/?utm_source=artical_gitcode&index=top&type=card&webUrl&isLogin=1
Unity使用:
下载ZString.Unity.x.x.x.unitypackage,直接导入Unity
全部导入后也许你的项目中之前就存在这个文件
System.Runtime.CompilerServices.Unsafe
那么重复导入后会报错
一般来说删掉新导入的文件就行,跟之前的公用
ZString 使用了一些底层优化技术,比如Span 和内存池,这些都需要用到 System.Runtime.CompilerServices.Unsafe 来绕过一些 .NET 的安全限制以获得更高性能(比如直接操作内存)。很多 SDK(比如 AppsFlyer、Firebase、Addressables 等)都会附带它。
常用方式
public class ZStringTest : MonoBehaviour
{void Start(){///--------------------Format----------------------// 基本使用string name = "Player";int score = 100;// 普通字符串拼接(GC 会产生垃圾)string s1 = "Name: " + name + ", Score: " + score;// ZString 拼接(无 GC)string s2 = ZString.Format("Name: {0}, Score: {1}", name, score);Debug.Log(s2);///--------------------StringBuilder-----------------using (var sb = ZString.CreateStringBuilder()){sb.Append("This is ");sb.Append(2025);sb.Append(" test.");string result = sb.ToString(); // 一次性生成Debug.Log(result);} // 自动释放内存池}
}