nav分隔線 nav分隔線

Unity 攝影機跟隨教學:讓你的遊戲畫面更生動

icon_fb icon_twitter icon_google
Unity 攝影機跟隨教學:讓你的遊戲畫面更生動

文、查理

 

玩遊戲的時候,操控玩家角色移動時,畫面會跟隨玩家移動,玩家停下時,畫面會緩緩停下來,攝影機跟隨要如何設定呢?會不會非常的困難?需要寫非常多的程式嗎?

如果使用Unity製作,只需要一點點程式碼,就可以完成,也不需要做太多的設定,這都是因為Unity提供了非常強大的各項功能!

 

首先我們可以到Unity官方網站的Asset Store素材商店,下載一個包含動畫的角色模型及場景來做測試。

 

角色場景的部分,主要需要三個步驟:

 

第一步驟:在網頁尋找包含動畫的角色模型以及場景模型

Unity Asset Store > 3D類別,搜尋:Lovely Animals PACK,Pricing(價格):0(免費)

 

 

Unity Asset Store > 3D類別,搜尋:Polylised - Medieval Desert City,Pricing(價格):0(免費)

可看到素材的相關預覽圖片或影片、版本、檔案大小等資訊,將檔案的名稱複製後,即可開啟Unity軟體,在Unity裡下載檔案。

 

 

第二步驟下載包含動畫的角色模型以及場景模型

在Unity開啟素材商店面板,Window > Asset Store

1. 註冊一個帳號,並登入後,分別搜尋:Lovely Animals PACK

2. 點選該項目進入下載頁面後,先點選Download下載完成後,再點選Import匯入Project素材庫

 

 

第三步驟:場景及角色設定

 

1. 在Project(素材庫),展開Polylised - Medieval Desert City資料夾,再點開Demo資料夾,點擊2次Demo_01,打開範例場景檔。

 

2. 在Project(素材庫),展開JKT_Art資料夾,再點開Animals資料夾,再點開cat資料夾,將Cat拖曳到Scene(場景)的街道上。

 

3. 但是貓咪好像有點太大隻,可以縮小一些。

Hierarchy(物件清單),點擊Cat,在Inspector(屬性)欄位設定貓咪位置及大小

Transform > PositionX : 45 ,Y : 0, Z : 0

Transform > SczleX : 0.5 ,Y : 0.5, Z : -0.5

 

 

第四步驟:貓咪角色控制程式碼設定

 

在Project(素材庫),按下左上方的Create按鈕,新增一個C# Script(程式碼),命名為Movement(玩家控制的程式碼),如下:

	
		using System.Collections 
		using System.Collections.Generic;
		using UnityEngine;

		public class Movement : MonoBehaviour {

			public float speed = 1f;
			public float rotateSpeed = 50f;
		
			private Vector3 movement;
			private float rotation;

			void Update ()
			{
				movement.z = Input.GetAxis("Vertical") * speed * Time.deltaTime;
				rotation = Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime;
			}

			void FixedUpdate ()
			{
				transform.Translate(movement, Space.Self);
				transform.Rotate(0f, rotation, 0f);

					float h = Input.GetAxisRaw ("Horizontal");
					float v = Input.GetAxisRaw ("Vertical");

					if(h != 0 || v != 0){
						GetComponent().SetTrigger ("Walk");
					}else{
						GetComponent ().SetTrigger ("Idle");
					}
		 	   }
		}
	

完成之後,再將程式碼拖曳到Cat玩家物件上,播放測試看看,按下鍵盤的方向鍵,即可開始移動我們的玩家物件

 

 

攝影機地的部分,主要需要3個步驟

 

 

 

第一步驟:設定攝影機位置及角度

Hierarchy(物件清單),展開Core,點選Main Camera

Inspector(屬性)欄位設定攝影機位置及角度

Transform > Position  X :45 ,Y : 5, Z : -15

Transform > Rotation  X : 10 ,Y : 0, Z : -0

 

第二步驟:攝影機跟隨程式碼設定

在Project(素材庫),按下左上方的Create按鈕,新增一個C# Script(程式碼),命名為CameraFollow(玩家控制的程式碼),如下:


	using System.Collections;
	using System.Collections.Generic;
	using UnityEngine;

	public class CameraFollow : MonoBehaviour {

	public Transform target;
	public float smoothing = 5f;
	Vector3 offset;

	// Use this for initialization
	void Start () {
		offset = transform.position - target.position;
	}

	// Update is called once per frame
	void Update () {

	}

	void FixedUpdate()
	{
		Vector3 targetCamPos = target.position + offset;
		transform.position = Vector3.Lerp (transform.position, targetCamPos, smoothing * Time.deltaTime);
	}
  }
	

 

完成之後,再將程式碼拖曳到Main Camera攝影機物件上

 

在Hierarchy(物件清單),先點選Main Camera攝影機物件,左鍵按住Cat玩家物件拖曳到Inspector(屬性)Target的欄位裡,將貓咪指定為攝影機的跟隨目標。

播放測試看看,按下鍵盤的方向鍵,即可開始移動貓咪物件,攝影機緩緩跟隨。

 

 

 

 

FB粉絲團:https://www.facebook.com/lccnetzone
YouTube頻道:https://www.youtube.com/user/LccnetTaiwan

痞客邦Blog:http://lccnetvip.pixnet.net/blog

本網站使用相關網站技術以確保使用者獲得最佳體驗,通過使用我們的網站,您確認並同意本網站的隱私權政策。欲了解詳情,請參閱 隱私權政策