Unity3D 遊戲引擎之感應IOS裝置旋轉與iPhone鍵盤事件(十六)

來源:互聯網
上載者:User
http://blog.csdn.net/xys289187120/article/details/6993977 Unity3D 遊戲引擎之感應IOS裝置旋轉與iPhone鍵盤事件      

雨松MOMO原創文章如轉載,請註明:轉載至我的獨立網域名稱部落格雨松MOMO程式研究院,原文地址:http://www.xuanyusong.com/archives/556

 

 

 

iPhone iPad iTouch 旋轉裝置都支援螢幕4個方向的任意旋轉,那麼強大的Unity3D 遊戲引擎當然也支援啦,雖然很多遊戲都為了避免麻煩強制的不讓旋轉螢幕,但是做為學習我們還是知道一下為好,因為Unity3D在處理旋轉螢幕實在是非常方便,下面MOMO將以一個例子向各位盆友們介紹Unity3D 螢幕的哪些事兒~~。

 

強制螢幕四個方向不旋轉的方法

 

[csharp] view plaincopy

  1. void Start () {  
  2.     //縱向 上下 兩個方向  
  3.     iPhoneKeyboard.autorotateToPortrait = false;  
  4.     iPhoneKeyboard.autorotateToPortraitUpsideDown = false;  
  5.       
  6.     //橫向 上下兩個方向  
  7.     iPhoneKeyboard.autorotateToLandscapeLeft = false;  
  8.     iPhoneKeyboard.autorotateToLandscapeRight = false;  
  9. }  

 

 

自動旋轉螢幕的方法,此方式適用於Unity3.3及一下的版本。

Input.deviceOrientation 可以得到當前IOS 裝置螢幕的方向狀態。

Screen.orientation 設定螢幕的反轉情況

  [csharp] view plaincopy

  1. void Update () {  
  2.         //處理橫向兩個方向旋轉  
  3.         if(Input.deviceOrientation == DeviceOrientation.LandscapeLeft)  
  4.         {  
  5.             if (Screen.orientation != ScreenOrientation.LandscapeLeft) {  
  6.                 Screen.orientation = ScreenOrientation.LandscapeLeft;  
  7.             }  
  8.         }else if(Input.deviceOrientation == DeviceOrientation.LandscapeRight)  
  9.         {  
  10.             if (Screen.orientation != ScreenOrientation.LandscapeRight) {  
  11.                 Screen.orientation = ScreenOrientation.LandscapeRight;  
  12.             }  
  13.               
  14.         }else   
  15.         //處理縱向兩個方向的旋轉  
  16.         if(Input.deviceOrientation == DeviceOrientation.Portrait)  
  17.         {  
  18.             if (Screen.orientation != ScreenOrientation.Portrait) {  
  19.                 Screen.orientation = ScreenOrientation.Portrait;  
  20.             }  
  21.         }else if(Input.deviceOrientation == DeviceOrientation.PortraitUpsideDown)  
  22.         {  
  23.             if (Screen.orientation != ScreenOrientation.PortraitUpsideDown) {  
  24.                 Screen.orientation = ScreenOrientation.PortraitUpsideDown;  
  25.             }  
  26.         }  
  27.     }  

 

 

 

3.4及以上的版本可以在Setting for IOS 設定中直接設定旋轉螢幕。

 

 


 

 

下面的遊戲例子,通過左邊的按鈕直接切換畫面旋轉狀態,右邊的按鈕開啟iPhone輸入狀態框。

 

 

    [csharp] view plaincopy

  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. public class Main : MonoBehaviour {  
  5.   
  6.     //鍵盤輸入  
  7.     private iPhoneKeyboard keyboard;  
  8.       
  9.     //字型皮膚  
  10.     public GUISkin fontSkin;    
  11.       
  12.     // Use this for initialization  
  13.     void Start () {  
  14.     }  
  15.       
  16.     // Update is called once per frame  
  17.     void Update () {  
  18.     }  
  19.       
  20.       
  21.     void OnGUI() {  
  22.         //設定皮膚  
  23.         GUI.skin = fontSkin;    
  24.            
  25.         //強制螢幕縱向  
  26.         if (GUI.Button(new Rect(10, 10, 300, 100), "change LandscapeLeft"))  {    
  27.                 Screen.orientation = ScreenOrientation.LandscapeLeft;  
  28.         }else if (GUI.Button(new Rect(10, 110, 300, 100), "change LandscapeRight"))  {    
  29.                 Screen.orientation = ScreenOrientation.LandscapeRight;  
  30.         }else   
  31.           
  32.         //強制螢幕橫向  
  33.         if (GUI.Button(new Rect(10, 210, 300, 100), "change Portrait"))  {    
  34.                 Screen.orientation = ScreenOrientation.Portrait;  
  35.         }else if (GUI.Button(new Rect(10, 310, 300, 100), "change PortraitUpsideDown"))  {    
  36.                 Screen.orientation = ScreenOrientation.PortraitUpsideDown;  
  37.         }     
  38.           
  39.           
  40.         if (GUI.Button(new Rect(320, 10, 300, 100), "open Keyboard"))  {   
  41.               //開啟iphone輸入框  
  42.               //第一個參數 預設顯示 test  
  43.               //第二個參數 設定輸入框類型,這裡為預設,什麼都可以輸入  
  44.               keyboard = iPhoneKeyboard.Open("test",iPhoneKeyboardType.Default);  
  45.                 
  46.         }  
  47.           
  48.         if(keyboard != null){  
  49.               
  50.             if (keyboard.done){  
  51.                 //輸入完畢後 點擊done 輸入輸入內容  
  52.                 Debug.Log( keyboard.text)   ;  
  53.             }     
  54.         }  
  55.           
  56.     }  
  57. }  
 

 

iPhoneKeyboardType 鍵盤類型幾個比較重要的參數,盆友們可是輸入試一試就知道效果啦。我就不了~

iPhoneKeyboardType.NumbersAndPunctuation : 輸入標點符號與數字

iPhoneKeyboardType.URL:輸入網址

iPhoneKeyboardType.PhonePad:輸入電話

iPhoneKeyboardType.NumberPad:輸入數字

iPhoneKeyboardType.EmailAddress:輸入Email


      螢幕方向不僅可以感應IOS裝置平面4個方向,還可以感應螢幕上下方向。 螢幕面朝上:LandscapeLeft.FaceUp
螢幕面朝下:LandscapeLeft.FaceDown

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.