iPhone iPad iTouch 旋转设备都支持屏幕4个方向的任意旋转,那么强大的Unity3D 游戏引擎当然也支持啦,虽然很多游戏都为了避免麻烦强制,不让屏幕旋转,但是为了学习还是知道一点为好。因为unity3d在处理屏幕旋转实在是非常方便,下面就以一个案例给大家介绍Unity3D 屏幕的哪些事儿~~。
强制屏幕四个方向不旋转的方法
- void Start () {
-
- iPhoneKeyboard.autorotateToPortrait = false;
- iPhoneKeyboard.autorotateToPortraitUpsideDown = false;
-
-
- iPhoneKeyboard.autorotateToLandscapeLeft = false;
- iPhoneKeyboard.autorotateToLandscapeRight = false;
- }
自动旋转屏幕的方法,此方式适用于Unity3.3及一下的版本。
Input.deviceOrientation 可以得到当前iOS 设备屏幕的方向状态。
Screen.orientation 设置屏幕的反转情况
- void Update () {
-
- if(Input.deviceOrientation == DeviceOrientation.LandscapeLeft)
- {
- if (Screen.orientation != ScreenOrientation.LandscapeLeft) {
- Screen.orientation = ScreenOrientation.LandscapeLeft;
- }
- }else if(Input.deviceOrientation == DeviceOrientation.LandscapeRight)
- {
- if (Screen.orientation != ScreenOrientation.LandscapeRight) {
- Screen.orientation = ScreenOrientation.LandscapeRight;
- }
-
- }else
-
- if(Input.deviceOrientation == DeviceOrientation.Portrait)
- {
- if (Screen.orientation != ScreenOrientation.Portrait) {
- Screen.orientation = ScreenOrientation.Portrait;
- }
- }else if(Input.deviceOrientation == DeviceOrientation.PortraitUpsideDown)
- {
- if (Screen.orientation != ScreenOrientation.PortraitUpsideDown) {
- Screen.orientation = ScreenOrientation.PortraitUpsideDown;
- }
- }
- }
3.4及以上的版本可以在Setting for IOS 设置中直接设置屏幕旋转。

下面的游戏例子,通过左边的按钮直接切换屏幕旋转状态,右边的按钮打开iPhone输入状态框。

- using UnityEngine;
- using System.Collections;
-
- public class Main : MonoBehaviour {
-
-
- private iPhoneKeyboard keyboard;
-
-
- public GUISkin fontSkin;
-
-
- void Start () {
- }
-
-
- void Update () {
- }
-
-
- void OnGUI() {
-
- GUI.skin = fontSkin;
-
-
- if (GUI.Button(new Rect(10, 10, 300, 100), "change LandscapeLeft")) {
- Screen.orientation = ScreenOrientation.LandscapeLeft;
- }else if (GUI.Button(new Rect(10, 110, 300, 100), "change LandscapeRight")) {
- Screen.orientation = ScreenOrientation.LandscapeRight;
- }else
-
-
- if (GUI.Button(new Rect(10, 210, 300, 100), "change Portrait")) {
- Screen.orientation = ScreenOrientation.Portrait;
- }else if (GUI.Button(new Rect(10, 310, 300, 100), "change PortraitUpsideDown")) {
- Screen.orientation = ScreenOrientation.PortraitUpsideDown;
- }
-
-
- if (GUI.Button(new Rect(320, 10, 300, 100), "open Keyboard")) {
-
-
-
- keyboard = iPhoneKeyboard.Open("test",iPhoneKeyboardType.Default);
-
- }
-
- if(keyboard != null){
-
- if (keyboard.done){
-
- Debug.Log( keyboard.text) ;
- }
- }
-
- }
- }
iPhoneKeyboardType 键盘类型几个比较重要的参数,盆友们可是输入试一试就知道效果啦。我就不截图了~
iPhoneKeyboardType.NumbersAndPunctuation : 输入标点符号与数字
iPhoneKeyboardType.URL:输入网址
iPhoneKeyboardType.PhonePad:输入电话
iPhoneKeyboardType.NumberPad:输入数字
iPhoneKeyboardType.EmailAddress:输入Email

屏幕方向不仅可以感应IOS设备平面4个方向,还可以感应屏幕上下方向。
屏幕面朝上:LandscapeLeft.FaceUp
屏幕面朝下:LandscapeLeft.FaceDown