[请益] Unity读取非Resource资料夹内档案的问题

楼主: doasgloria (青柳立夏)   2020-07-31 11:20:51
这篇的问题是从我上一篇问题衍伸来的 XD
就是如何隐藏Compute Shader的问题
我想到一个方式是
将Shader内容的字串
在执行时写成 .txt 或 .compute 的档案
读进来后再删除掉
虽然不是像打包成dll那样 但是也是提高保护性
但是实作上遇到一些问题 我想应该跟Unity读取资源素材的机制有关Q_Q
我写出来的时候是这样:
string SavePath = Application.persistentDataPath + "MyShader.compute";
string ShaderContent = "Content_of_MyCS"; //这里有好多行shader的内容
StreamWriter writer = new StreamWriter(SavePath, true);
writer.WriterLine(ShaderContent);
writer.Close();
作者: Unity (Unity3D)   2020-07-31 14:32:00
我觉得你应该考虑看看用 AB 的方式另外载进来
楼主: doasgloria (青柳立夏)   2020-07-31 14:53:00
惊 ! 竟然有unity本人回文XD 不过AB是什么啊~~Asset Database还什么的吗@@"
作者: CarpeDiemAL (CarpeDiemAL)   2020-07-31 15:18:00
asset bundle?
楼主: doasgloria (青柳立夏)   2020-07-31 17:35:00
我用了asset bundle打包成档案了 的确可以只是好奇 这个build bundle打包起来的档案 我用txt开显示乱码而不是shader原始码 所以该算是藏起来了吧~XD
作者: wix3000 (痒,好吃)   2020-07-31 17:56:00
我记得 Asset bundle 就是个压缩档而已 (茶
楼主: doasgloria (青柳立夏)   2020-07-31 17:57:00
T_T
作者: cjcat2266 (CJ Cat)   2020-08-01 04:07:00
这招顶多在editor内有用,Unity没有run time shader compiler
作者: kingroy (手残总比脑残好)   2020-08-01 08:03:00
Asset Bundle是压缩档没错,现在新的Addressable Assets多一点功能但难上手一点点shader没有runtime compiler没错 但shader有放到本体里打包就ok
楼主: doasgloria (青柳立夏)   2020-08-02 01:01:00
那Asset Bundle 别人有办法知道怎么压缩的然后解压缩出原本的档案吗 ?? 我记得打包的时候有很多压缩方法可以选吧~~
作者: newyellow (newyellow)   2020-08-04 02:19:00
刚随手 google 了一下 看起来 asset bundle 应该可加密
楼主: doasgloria (青柳立夏)   2020-08-05 09:49:00
我自己goo一下 好像是它本身就有加密功能 只是可能透过系统读取的时候 用一些方法额外读取 就是看Load时候用了Unity什么API 造成读取时的安全性

Links booklink

Contact Us: admin [ a t ] ucptt.com