[請益] Unity讀取非Resource資料夾內檔案的問題

看板GameDesign作者 (青柳立夏)時間3年前 (2020/07/31 11:20), 編輯推噓6(6016)
留言22則, 7人參與, 3年前最新討論串1/1
這篇的問題是從我上一篇問題衍伸來的 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://www.ptt.cc/bbs/GameDesign/M.1596165658.A.E89.html

07/31 14:32, 3年前 , 1F
我覺得你應該考慮看看用 AB 的方式另外載進來
07/31 14:32, 1F

07/31 14:53, 3年前 , 2F
驚 ! 竟然有unity本人回文XD 不過AB是甚麼啊~~
07/31 14:53, 2F

07/31 14:53, 3年前 , 3F
Asset Database還什麼的嗎@@"
07/31 14:53, 3F

07/31 15:18, 3年前 , 4F
asset bundle?
07/31 15:18, 4F

07/31 17:35, 3年前 , 5F
我用了asset bundle打包成檔案了 的確可以
07/31 17:35, 5F

07/31 17:35, 3年前 , 6F
只是好奇 這個build bundle打包起來的檔案 我用txt開
07/31 17:35, 6F

07/31 17:36, 3年前 , 7F
顯示亂碼而不是shader原始碼 所以該算是藏起來了吧~XD
07/31 17:36, 7F

07/31 17:56, 3年前 , 8F
我記得 Asset bundle 就是個壓縮檔而已 (茶
07/31 17:56, 8F

07/31 17:57, 3年前 , 9F
T_T
07/31 17:57, 9F

08/01 04:07, 3年前 , 10F
這招頂多在editor內有用,Unity沒有run time shader co
08/01 04:07, 10F

08/01 04:07, 3年前 , 11F
mpiler
08/01 04:07, 11F

08/01 08:03, 3年前 , 12F
Asset Bundle是壓縮檔沒錯,現在新的Addressable Assets
08/01 08:03, 12F

08/01 08:03, 3年前 , 13F
多一點功能但難上手一點點
08/01 08:03, 13F

08/01 08:04, 3年前 , 14F
shader沒有runtime compiler沒錯 但shader有放到本體裡打
08/01 08:04, 14F

08/01 08:04, 3年前 , 15F
包就ok
08/01 08:04, 15F

08/02 01:01, 3年前 , 16F
那Asset Bundle 別人有辦法知道怎麼壓縮的然後解壓縮
08/02 01:01, 16F

08/02 01:01, 3年前 , 17F
出原本的檔案嗎 ?? 我記得打包的時候有很多壓縮方法可
08/02 01:01, 17F

08/02 01:01, 3年前 , 18F
以選吧~~
08/02 01:01, 18F

08/04 02:19, 3年前 , 19F
剛隨手 google 了一下 看起來 asset bundle 應該可加密
08/04 02:19, 19F

08/05 09:49, 3年前 , 20F
我自己goo一下 好像是它本身就有加密功能 只是可能透
08/05 09:49, 20F

08/05 09:50, 3年前 , 21F
過系統讀取的時候 用一些方法額外讀取 就是看Load時候
08/05 09:50, 21F

08/05 09:50, 3年前 , 22F
用了Unity什麼API 造成讀取時的安全性
08/05 09:50, 22F
文章代碼(AID): #1V8uuQw9 (GameDesign)