Unity 4.x遊戲開發技巧集錦第2章攝像機的應用
Unity 4.x遊戲開發技巧集錦第2章攝像機的應用
作為遊戲開發者,千萬不要忽略了攝像機(Camera)的重要性。畢竟玩家是通過攝像機,才看到了遊戲的檢視。本章將介紹一些攝像機的常見應用。本文選自《Unity 4.x遊戲開發技巧集錦》
Unity 4.x遊戲開發技巧集錦2.1 設定雙遊戲檢視
很多遊戲裡,一個遊戲的檢視中,經常會包含另一個遊戲檢視。而兩個檢視所呈現的,是由兩個攝像機在場景的不同位置所拍攝的畫面。例如,《QQ飛車》中,除了第三人稱檢視以外,遊戲檢視的右側還有一個跑道位置預覽檢視,如圖2-1所示。本節將模擬這種情況,然後說明生成這種檢視效果的方法。本文選自《Unity 4.x遊戲開發技巧集錦》
圖2-1 《QQ飛車》中的雙遊戲檢視
Unity 4.x遊戲開發技巧集錦2.1.1 環境準備
首先,除了場景中預設生成的Main Camera物件外,還需要為場景新增4個遊戲物件:Directional light、Camera、Cube和Sphere。改變兩個攝像機的位置,使得它們看到場景中不同的遊戲物件,如圖2-2所示。
圖2-2 為場景新增遊戲物件,並調整它們的位置
Main Camera所拍攝到的檢視裡有球體,Camera所拍攝到的檢視裡有立方體,修改Camera拍攝檢視的背景顏色,具體操作是:選中Camera,在檢視器中修改名為Camera的元件的Background屬性為其它的顏色,如圖2-3所示。最終兩個遊戲檢視合併時,背景顏色可以區分兩個檢視的邊界。本文選自《Unity 4.x遊戲開發技巧集錦》
圖2-3 修改攝像機所拍攝檢視的背景顏色
Unity 4.x遊戲開發技巧集錦2.1.2 編寫指令碼
然後,在Project檢視裡建立一個C#指令碼檔案,並命名為PictureInPicture。開啟指令碼檔案,並向其中新增如下程式碼:本文選自《Unity 4.x遊戲開發技巧集錦》
- 01 using UnityEngine;
- 02
- 03 public class PictureInPicture : MonoBehaviour
- 04 {
- 05 //定義列舉型別
- 06 public enum HorizontalAlignment{left, center, right};
- 07 public enum VerticalAlignment{top, middle, bottom};
- 08 public enum ScreenDimensions{pixels, screen_percentage};
- 09 //定義列舉型別的變數
- 10 public HorizontalAlignment horizontalAlignment = HorizontalAlignment.left;
- 11 public VerticalAlignment verticalAlignment = VerticalAlignment.top;
- 12 public ScreenDimensions dimensionsIn = ScreenDimensions.pixels;
- 13
- 14 public int width = 50;
- 15 public int height= 50;
- 16 public float xOffset = 0f;
- 17 public float yOffset = 0f;
- 18 public bool update = true;
- 19
- 20 private int hsize, vsize, hloc, vloc;
- 21 //遊戲物件初始化時,呼叫此函式
- 22 void Start ()
- 23 {
- 24 AdjustCamera ();
- 25 }
- 26 // 遊戲執行時,每一幀都呼叫此函式
- 27 void Update ()
- 28 {
- 29 if(update)
- 30 AdjustCamera ();
- 31 }
- 32 void AdjustCamera()
- 33 {
- 34 if(dimensionsIn == ScreenDimensions.screen_percentage) //調節檢視為指定百分比大小
- 35 {
- 36 hsize = Mathf.RoundToInt(width * 0.01f * Screen.width);
- 37 vsize = Mathf.RoundToInt(height * 0.01f * Screen.height);
- 38 }
- 39 else //調節檢視為指定畫素大小
- 40 {
- 41 hsize = width;
- 42 vsize = height;
- 43 }
- 44 if(horizontalAlignment == HorizontalAlignment.left) //水平方向上是左對齊
- 45 {
- 46 hloc = Mathf.RoundToInt(xOffset * 0.01f * Screen.width);
- 47 }
- 48 else if(horizontalAlignment == HorizontalAlignment.right) //水平方向上是右對齊
- 49 {
- 50 hloc = Mathf.RoundToInt((Screen.width - hsize) - (xOffset * 0.01f * Screen.width));
- 51 }
- 52 else //水平方向上是居中對齊
- 53 {
- 54 hloc = Mathf.RoundToInt(((Screen.width * 0.5f) -
- 55 (hsize * 0.5f)) - (xOffset * 0.01f * Screen.height));
- 56 }
- 57 if(verticalAlignment == VerticalAlignment.top) //垂直方向上是頂端對齊
- 58 {
- 59 vloc = Mathf.RoundToInt((Screen.height - vsize) - (yOffset * 0.01f * Screen.height));
- 60 }
- 61 else if(verticalAlignment == VerticalAlignment.bottom) //垂直方向上是底端對齊
- 62 {
- 63 vloc = Mathf.RoundToInt(yOffset * 0.01f * Screen.height);
- 64 }
- 65 else //垂直方向上是居中對齊
- 66 {
- 67 vloc = Mathf.RoundToInt(((Screen.height * 0.5f) -
- 68 (vsize * 0.5f)) - (yOffset * 0.01f * Screen.height));
- 69 }
- 70 camera.pixelRect = new Rect(hloc,vloc,hsize,vsize);
- 71 }
- 72 }
指令碼將依據使用者自定義的設定,決定該如何擺放,以及以多大的尺寸,顯示Camera所拍攝的檢視。本文選自《Unity 4.x遊戲開發技巧集錦》
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-1304304/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Unity 4.x遊戲開發技巧集錦(內部資料)Unity遊戲開發
- Unity遊戲開發技巧集錦2.1.3實現效果Unity遊戲開發
- 喵的Unity遊戲開發之路 - 軌道攝像機Unity遊戲開發
- unity3d--攝像機Unity3D
- unity3d攝像機Unity3D
- PageMaker排版製作精彩應用技巧集錦
- Excel中Text 函式應用技巧集錦Excel函式
- Angular 4.X 踩坑集錦Angular
- 搭建一個攝像頭應用程式 應用程式內部攝像頭
- vlc的應用:用vlc串流攝像頭
- 攝像頭背後的應用–資訊圖
- Unity 3d UI獲取外部攝像頭拍攝Unity3DUI
- 攝像機控制軟體CaptureGRID更好的幫您管理攝像機APT
- Unity 4.x 2D遊戲開發基礎教程Unity遊戲開發
- [python]小技巧集錦Python
- 史上最全的Chrome使用技巧集錦Chrome
- Unity 4.x 2D遊戲開發基礎教程 大學霸Unity遊戲開發
- Office 2007 實用技巧集錦薦
- [Unity3D 版本5.X]實現一個自由漫遊的攝像機Unity3D
- UVC 攝像頭在 RK3399 上的應用
- 360智慧攝像機能否防盜? 實用測評
- JavaCV FFmpeg採集攝像頭YUV資料Java
- Portal開發與配置技巧集錦(一)
- Portal開發與配置技巧集錦(三)
- Portal開發與配置技巧集錦(二)
- Linux 常見命令小技巧集錦Linux
- 最有用的Linux命令列使用技巧集錦Linux命令列
- 實用知識:在低溫下拍攝應該如何保護攝像器材
- OpenGL 攝像機視角詳解
- 智慧攝像機的網路安全如何保障?
- 12款CSS3應用集錦下載CSSS3
- Metal入門教程(三)攝像頭採集渲染
- 比較實用的js集錦JS
- 實用口語集錦
- Android多媒體應用開發-控制攝像頭拍照Android
- 攝像機矩陣P的性質小結矩陣
- html5呼叫手機攝像頭HTML
- 網路攝像機-ISP基礎一