Unity iphone 開發答疑彙總

轉自:http://web3d.5d6d.com/thread-2243-1-1.html

 

先決條件

我剛收到iPhone開發的許可,但我之前從來沒有爲iPhone開發。我該怎麼辦呢?

答:下載的SDK ,啓動和運行蘋果開發者網站,建立您的team,devices和provisioning。我們提供了基本的步驟列表讓你開始。



用unity建造的遊戲可否運行在iPhone的模擬器?

答:不可以。iPhone模擬器對於unity不是非常有用,因爲它沒有模擬iPhone所有的交互方式,而且它模擬的性能和運行在iPhone上是不一樣的。您可以直接在unity內部測試遊戲,iPhone將作爲一個遙控器使用,當它運行在iphone的遠程應用端(unity remote)上時。然後當您準備好要測試性能和優化遊戲時,就將其直接發佈(publish)到iPhone中。



unity Remote

我該怎樣使用unity Remote?

答:在您的unity iPhone安裝目錄,您會看到一個文件夾,名爲“unity Remote” 。這包含了XCode項目,您可以運行和編譯unity Remote安裝到您iphone上。安裝後,請確保您的設備和開發機是通過WiFi連接到同一網絡。在unity 運行時啓動iphone Remote,並在出現的列表中選擇您的計算機。現在,只要您點擊編輯器中的播放模式,您的iphone設備將作爲一個遠程控制端用來開發和測試遊戲。



我在

xcode裏產生了一個奇怪的錯誤,當部署unity Remote到設備時

答:unity Remote的identifiler和您提供的provisioning profile不匹配。您必須手動更改此簽名在您XCode項目。identifiler必須和您提供的provisioning profile相符。



如果你有一個授權的AppID,上面標有星號作爲結束(例如######. com.mycompany .* ),你可以跳過這一段。如果您沒有創建AppID,那麼你就必須在iphone開發中心的program portal中建立一個。轉到program portal,選擇AppIDs選項卡上,單擊添加編號按鈕(右上角) ,輸入*在app id名稱和您通常使用的簽名(例如com.mycompany )之後 。添加新AppID到你的provisioning profile中,請下載並重新安裝它。不要忘了之後重新啓動XCode。如果您有任何麻煩請查詢如何配置授權章節。



打開iphone Remote 項目在XCode中 。在菜單中選擇項目“project->Edit Active Target”unity Remote“ ,將打開一個”unity Remote“信息窗口。選擇Properties選項卡。更改identifiler屬性字段com.unity3d.UnityRemote爲您的AppID。其次是“ UnityRemote ” 。例如,如果您provisioning profile包含######. com.mycompany .* 這個AppID,當更改identifiler字段爲com.mycompany.UnityRemote 。在Build菜單中選擇清除所有目標,然後編譯並再次安裝unity Remote。

(不要忘了要更改identifiler,然後才能安裝unity Remote到您的設備上)



unity特性

我如何使用觸摸屏和加速度計?

答:在scripting reference中,你會找到一些iPhoneInput類,還有iPhoneSettings和其他一些。這些新增的iPhone類負責鉤起設備指定功能。



難道iPhone支持unity的地形引擎?

答:在unity iPhone中目前不支持地形。在iPhone上您需要繪製low poly地形。地形系統沒有這個功能,所以使用low poly是更好的選擇。



我現有的粒子系統運行在iPhone上時很慢。我應該怎麼辦?

答: iPhone擁有相對較低的fillrate 。如果您的粒子效果覆蓋大部分的屏幕,而且是multiple layers的-這樣即使最簡單的shader,也能讓iphone傻眼。我們建議把您的粒子效果baking成紋理序列圖。然後在運行時可以使用1-2個粒子,通過動畫紋理來顯示它們。這種方式可以取得很好的效果,以最小的代價。



我是否可以在遊戲中,使用複雜的物理仿真?

答:iPhone運算物理仿真代價很高,我們建議您儘可能少使用它們。物理需要做很多浮點數運算不適合iPhone的ARM處理器。如有可能,完全避免使用MeshColliders,但必要時它們是可用的。要提高性能,使用一個低的固定幀率在 Edit“Time”->"Fixed delta Time"。建議控制在10-30。在降低物理幀速率的同時,可以使用剛體插值以實現平滑的動作效果。爲了實現完全流暢的幀率而不卡機,最好是選擇Fixed deltaTime value base,使您的遊戲在iPhone上獲得一個平均的幀率 。建議要麼1:1或一半的幀速率。例如,如果您獲得每秒30張,您應該使用15或30 fps爲物理固定刷新率( 0.033或0.066 )



使用UnityGUI的考慮

使用UnityGUI將會對我的遊戲性能產生什麼影響嗎?

答: 當有許多交互控制時,UnityGUI的使用代價是相當昂貴的,。理想的方法是限制使用UnityGUI遊戲菜單,或在遊戲運行中儘量少用GUI控制。重要的是要注意,每個對象腳本的OnGUI ( )調用將需要更多的處理器時間,即使它是一個空OnGUI ( )塊。最好的方法是禁止此腳本調用GUI元件,如果它沒有使用。爲此,您可以標記腳本爲Enabled=false。



UnityGUI 有沒有其他的使用技巧?

儘可能少嘗試使用GUILayout。如果您的GUILayout不是都從一個OnGUI調用,您可以停用所有GUILayout渲染使用MonoBehaviour.useGUILayout =false;這能雙倍提高GUI圖形渲染性能。最後,儘量少用GUI元件,在繪製三維場景的同時。



設備的圖形性能

什麼是網格量化?

答:在iPhone中內存帶寬是另一個寶貴的資源,(因爲CPU和GPU需要共享帶寬) 。 iPhone支持32 ,16和8bit類型的vertex components。量化網格圖形數據到這些指定類型,可以儘量壓縮頂點數據尺寸(鑑於它可以容忍一些用戶指定錯誤)。由於訪問數據量的減少,可以提高性能。



我可以在iphone上使用bumpmapped 嗎?

答: iPhone擁有介於TNT2和GeForce1之間的片段處理能力。它可以加或乘兩個紋理在一起,但法線貼圖只能歇菜。



基本的頂點計數原則是什麼?

答:爲了實現每秒30張在iPhone上,你應該讓每幀頂點計數明顯低於7000個。每個場景頂點數量則沒有限制。只要您確保不超過7000個頂點在同一可見畫面中,就能保證unity的高幀率。使用新的遮擋篩選功能,可以確保只有7000頂點可見。



Xcode

我收到了很多編譯錯誤Xcode 。這是怎麼回事?

答:請確認您選擇了“Device”模式,而不是“simulator”。



有時,當我點擊“Build and go” ,我看到奇怪的錯誤。

答:這是一個Xcode的Bug ,並且不破壞您的項目。只要按一下確定以繞過消息,您的遊戲應該功能完全正常。



我該如何設定我的應用程序圖標在iphone主頁屏幕?

答:你需要從Xcode中處理這個 。有一些簡單的步驟如下:



創建您的57x57像素png圖像。

將其命名爲“ Icon.png ” ,並將其放置在Xcode項目的根目錄

在Xcode ,右鍵單擊該項目文件中“Group&File”

選擇Add...->Existing files並添加您的圖片。

找到Info.plist在Xcode ,雙擊它

改變“Icon file”屬性值爲“ Icon.png ”



如何設置啓動畫面爲我的應用(只支持unity iPhone專業版)

答:你需要在Xcode中實現 。有一些簡單的步驟如下:



創建一個320x480像素的png圖片

其命名爲“ Default.png ” ,並將其放置在Xcode項目的根目錄

在Xcode ,右鍵單擊該項目文件中“Group&File”

選Add...->Existing Files並添加您的圖片。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章