作者doasgloria (青柳立夏)
看板GameDesign
標題[請益] Unity讀取非Resource資料夾內檔案的問題
時間Fri Jul 31 11:20:51 2020
這篇的問題是從我上一篇問題衍伸來的 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();
--------------以上可以做到前半段寫出
但是我發現
我沒辦法讀取它~~
如果我它是txt
我可以用
StreamReader.ReadToEnd() 獲得字串內容
但是不知道怎麼以一個 ComputeShader的方式讀取它
我知道 Shader 好像有Find可以做類似的事
但是在ComputeShader好像沒有 Q__Q
在
Resource資料夾的東東的話 可以
Resources.Load("MyShader") as
ComputeShader
不知道是否有大大知道
如果不是在Resource資料夾內的話 有沒有類似的方式呢 !!
感謝 >////<
--
◤ | █ ヽ █ ◥ ▂▃▄▃▂ 回戰文 疾如風
▍˙▆ 八███████▃▃▄ ●火 ◇ 風● 發廢文 繁如林
▋˙●◤█◤ノ ヽ◥ ‧▋ ●◇ ◇● 挑釁文 嗆如火
◥___ █◤ ● ● ██◣ ●山◇林● 宅在家不動如山
◢█ ██◤ ( _●_) ミ█◣ 彡 甲斐の熊-武田熊玄
◢▇▇▊█▼ |∪| ◢█ ◣_█◢◢ ◤、● 原SotaFujimor 改marubom
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.30.142 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/GameDesign/M.1596165658.A.E89.html
1F:推 Unity: 我覺得你應該考慮看看用 AB 的方式另外載進來 07/31 14:32
2F:→ doasgloria: 驚 ! 竟然有unity本人回文XD 不過AB是甚麼啊~~ 07/31 14:53
3F:→ doasgloria: Asset Database還什麼的嗎@@" 07/31 14:53
4F:推 CarpeDiemAL: asset bundle? 07/31 15:18
5F:→ doasgloria: 我用了asset bundle打包成檔案了 的確可以 07/31 17:35
6F:→ doasgloria: 只是好奇 這個build bundle打包起來的檔案 我用txt開 07/31 17:35
7F:→ doasgloria: 顯示亂碼而不是shader原始碼 所以該算是藏起來了吧~XD 07/31 17:36
8F:推 wix3000: 我記得 Asset bundle 就是個壓縮檔而已 (茶 07/31 17:56
9F:→ doasgloria: T_T 07/31 17:57
10F:推 cjcat2266: 這招頂多在editor內有用,Unity沒有run time shader co 08/01 04:07
11F:→ cjcat2266: mpiler 08/01 04:07
12F:推 kingroy: Asset Bundle是壓縮檔沒錯,現在新的Addressable Assets 08/01 08:03
13F:→ kingroy: 多一點功能但難上手一點點 08/01 08:03
14F:→ kingroy: shader沒有runtime compiler沒錯 但shader有放到本體裡打 08/01 08:04
15F:→ kingroy: 包就ok 08/01 08:04
16F:→ doasgloria: 那Asset Bundle 別人有辦法知道怎麼壓縮的然後解壓縮 08/02 01:01
17F:→ doasgloria: 出原本的檔案嗎 ?? 我記得打包的時候有很多壓縮方法可 08/02 01:01
18F:→ doasgloria: 以選吧~~ 08/02 01:01
19F:推 newyellow: 剛隨手 google 了一下 看起來 asset bundle 應該可加密 08/04 02:19
20F:→ doasgloria: 我自己goo一下 好像是它本身就有加密功能 只是可能透 08/05 09:49
21F:→ doasgloria: 過系統讀取的時候 用一些方法額外讀取 就是看Load時候 08/05 09:50
22F:→ doasgloria: 用了Unity什麼API 造成讀取時的安全性 08/05 09:50