跳到主要內容

發表文章

目前顯示的是 6月, 2017的文章

Unity 5.6 ios 編譯的三個錯誤

編譯unity 5.6.x 於ios上 編譯過程會產生三個錯誤,目前知道這個Bug由 IL2CPP 所造成 ,選擇Mono2x就不會有事,但Mono2X不能編譯64位元,只能Arm7所以iphone 5s 以上都不能執行 試試看把整個專案搬移至mac 桌面,然後編編譯看看,有機會可以編譯過去 目前只能期待官方 快點修正這個Bug Failed running /Applications/Unity/Unity.app/Contents/Tools/UnusedByteCodeStripper2/UnusedBytecodeStripper2.exe --api NET_2_0_Subset -out "/Volumes/SSD_D/Arkit/ArkitFPS2/Temp/StagingArea/Data/Managed/tempStrip" -l none -c link -b true -x "/Applications/Unity/PlaybackEngines/iOSSupport/Whitelists/Core.xml" -f "/Applications/Unity/Unity.app/Contents/il2cpp/LinkerDescriptors" -x "/Volumes/SSD_D/Arkit/ArkitFPS2/Temp/StagingArea/Data/Managed/../platform_native_link.xml" -x "/Volumes/SSD_D/Arkit/ArkitFPS2/Temp/StagingArea/Data/methods_pointedto_by_uievents.xml" -x "/Volumes/SSD_D/Arkit/ArkitFPS2/Temp/StagingArea/Data/preserved_derived_types.xml" -x "/Applications/Unity/PlaybackEngines/iOSSupport/Whitelists/AI.xml" -x "/Applications/Unity/Playback

mac windows 多系統安裝 且還有D槽

因為雷了很多次,浪費了很多時間 所以再一次的記錄下來, 如果你想要讓你的MAC 擁有mac os與 windows 並存,且還有一個D槽讓兩邊的系統都可以讀取的exFat 那你必須要這麼做: 請不要使用bootcamp 切割硬碟 那只會讓事情更糟糕 1.開機的時候使用command + R 連結網路 進入網路開機 2.使用磁碟分割工具,分割三個磁碟    第一個 FAT  等一下安裝windows 使用    第二個 Exfat 當成兩系統資料交換    第三個 MAC卷宗  等一下安裝MAC使用 關鍵就是MAC要放在最後一個磁區 接著安裝MAC 裝完MAC將 windows 安裝即可

ios編譯CreatePrimitive 遇到大問題 -->Cancel Strip Engine Code on ios build

Unity對於arm64目前只能使用 IL2CPP , 不能使用Mono2X 原因網友說因為Mono的Arm64 Lib不opne source,所以針對iphone 6 iphone 7 基本上不能使用mono2x, 這裡有一個編譯的陷阱,強迫使用IL2CPP時有一個選項 Strip Engine Code 一定要取消打勾,否則有一些程式碼會讓你的程式碼無法運作,例如CreatePrimitive 這個指令就無法運行,但是在windows 或是mac 沒有問題. 所以重點是 Cancel Strip Engine Code on ios build Cancel Strip Engine Code on ios build Cancel Strip Engine Code on ios build Cancel Strip Engine Code on ios build

Unity透過 Camera.projectionMatrix 回算出aspect 與 fov

https://developer.vuforia.com/forum/unity-extension-technical-discussion/vertical-fov-unity 這裡有寫道 Matrix4x4 mat = Camera.main.projectionMatrix;   float a = mat[0]; float b = mat[5]; float c = mat[10]; float d = mat[14];   float aspect_ratio = b / a;   float k = (c - 1.0f) / (c + 1.0f); float clip_min = (d * (1.0f - k)) / (2.0f * k); float clip_max = k * clip_min;   float RAD2DEG = 180.0f / 3.14159265358979323846f; float fov = RAD2DEG * (2.0f * ( float )Math.Atan(1.0f / b));