Unity3D 游戏引擎之感应iOS设备旋转与iPhone键盘事件

移动开发 Android iOS 游戏开发
iPhone iPad iTouch 旋转设备都支持屏幕4个方向的任意旋转,那么强大的Unity3D 游戏引擎当然也支持啦,虽然很多游戏都为了避免麻烦强制的不让屏幕旋转但是做为学习我们还是知道一下为好,因为Unity3D在处理屏幕旋转实在是非常方便。

下面MOMO将以一个例子向各位盆友们介绍Unity3D 屏幕的哪些事儿。

强制屏幕四个方向不旋转的方法

[代码]c#/cpp/oc代码:

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 设置屏幕的反转情况

 

[代码]c#/cpp/oc代码:

01 void Update () { 
02         //处理横向两个方向旋转 
03         if(Input.deviceOrientation == DeviceOrientation.LandscapeLeft) 
04         { 
05             if (Screen.orientation != ScreenOrientation.LandscapeLeft) { 
06                 Screen.orientation = ScreenOrientation.LandscapeLeft; 
07             } 
08         }else if(Input.deviceOrientation == DeviceOrientation.LandscapeRight) 
09         { 
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输入状态框。

[代码]c#/cpp/oc代码:

01 using UnityEngine; 
02 using System.Collections; 
03    
04 public class Main : MonoBehaviour { 
05    
06     //键盘输入 
07     private iPhoneKeyboard keyboard; 
08        
09     //字体皮肤 
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
责任编辑:冰凝儿
相关推荐

2012-12-24 09:01:41

iOSUnity3D

2012-12-24 08:52:44

iOSUnity3D

2012-12-24 08:51:23

iOSUnity3D

2012-12-24 08:54:47

iOSUnity3D

2012-12-24 08:40:12

2012-12-24 08:57:35

iOSUnity3D

2012-12-24 08:46:50

iOSUnity3D

2012-12-24 08:59:13

iOSUnity3D

2012-12-24 08:56:15

iOSUnity3D

2012-12-24 08:45:19

iOSUnity3D

2012-12-24 08:48:25

iOSUnity3D

2012-12-24 08:50:21

iOSUnity3D

2012-12-24 09:04:04

iOSUnity3D

2012-12-24 09:07:09

iOSUnity3D

2013-04-25 09:56:24

unity3D手机游戏引擎

2012-12-24 09:02:48

iOSUnity3D

2013-06-17 09:12:31

Unity3D

2013-04-25 10:03:07

unity3D手机游戏引擎

2012-12-24 09:00:31

iOSUnity3D

2012-12-24 09:11:58

iOSUnity3D
点赞
收藏

51CTO技术栈公众号