Unity3D UGUI攝像機跟隨主角(簡明易懂)NGUI下也可以參考使用
我在這裡寫兩個方法,一種鏡頭是跟隨主角,但不隨著主角旋轉而旋轉。另一種是鏡頭是跟隨主角,並且隨著主角旋轉而旋轉。兩個方法都會用不同的方式寫。
第一種,指令碼掛在Camera下
public class CameraFollow : MonoBehaviour {
private Transform target; //角色的Transform
public Vector3 Offset; //攝像機與角色的相對位置偏移距離
void Start()
{
//得到角色和偏移
target = GameObject.FindWithTag("Player" ).transform;//根據Tag獲取角色,不懂的看圖
Offset = target.transform.position - transform.position;//(如果這個不懂,可以看下面)
}
void Update()
{
//攝像機的位置等於 玩家的位置 減去 偏移距離值
transform.position = target.transform.position - Offset;
//攝像機朝向角色
transform.LookAt(target);
}
}
第二種,指令碼一樣掛著Camera下
public class CameraFollow : MonoBehaviour {
private Transform target;
public Vector3 offset;
public float smoothing = 10; //移動平滑度(可有可無)
public void Start()
{
target = GameObject.Find("Cube002").transform;
//offset直接在Unity中賦值,詳細見圖
}
public void LateUpdate()//做攝像機平滑用LateUpdate可以讓畫面更流暢
{
transform.position = Vector3.Lerp(transform.position,
target.position + target.TransformDirection(offset),
smoothing * Time.deltaTime);
}
}
//這段程式碼的意思就是:攝像機從原來自身的位置出發到達目標位置(最後一個是平滑值,平滑值越大,鏡頭跟隨越快)
/*首先:offset是角色位置 - 攝像機的位置,是一個向量(方向+距離)
此時的向量是一個區域性向量(並不是世界座標下的向量)*/
/*然後:target.TransformDirection(offset)的意思就是,
將自身相對座標的方向轉換成世界座標下的方向,這樣攝像機才能保持在世界座標下跟隨角色/物體*/
紅色的線就是offset,即攝像機與物體(角色)的距離
以上就這些。
結尾:快速獲取offset;
第一步:
先在Scene模式下,找到合適的螢幕位置作為攝像機的位置,然後進行上圖流程。
第二步:
將MainCamera放到需要跟隨的物體上(指令碼要事先先掛上)。
第三步:把MainCamera拖回原來的位置
這樣獲取的offset的向量方便快捷,又能達到自己想要的結果,是非常好的一種方法。
相關推薦
Unity3D UGUI攝像機跟隨主角(簡明易懂)NGUI下也可以參考使用
我在這裡寫兩個方法,一種鏡頭是跟隨主角,但不隨著主角旋轉而旋轉。另一種是鏡頭是跟隨主角,並且隨著主角旋轉而旋轉。兩個方法都會用不同的方式寫。 第一種,指令碼掛在Camera下 public class CameraFollow : MonoBehavio
面向連接的Socket Server的簡單實現(簡明易懂)
nta on() img == con 線程關閉 sse 每一個 sockaddr http://www.cnblogs.com/worldtraveler/p/4685977.html 一、基本原理 有時候我們需要實現一個公共的模塊,需要對多個其他的模塊提供服務,最常用
Adaboost演算法原理分析和例項+程式碼(簡明易懂)
【尊重原創,轉載請註明出處】 http://blog.csdn.net/guyuealian/article/details/70995333 本人最初瞭解AdaBoost演算法著實是花了幾天時間,才明白他的基本原理。也許是自己能力有限吧,很多資料也是看得懵懵懂
unity中攝像機跟隨主角,攝像機穿牆,射線碰撞檢測,攝像機穿牆跟隨
這個問題,攝像機拍攝主角,當主角被牆遮蔽了視野,那麼就用正上方的點和當前相機所在位置的店為起始點和終點,從二者之間再找出三個關鍵點進行射線檢測,能看到主角的店即可作為攝像機的transform.position Vec
Unity3D ugui攝像機AABB動態剔除不可見UI
UI 相機的可見區域之外,雖然會被顯示卡繪製剪裁掉,但是會消耗drawcall。我們可以利用AABB碰撞檢測剔除掉,相機之外的ui元素,就是active false掉。效果如下:
Unity3D中攝像機跟隨方法
using UnityEngine; using System.Collections; /// <summary> /// Camera move. /// 掛載物件:攝像機 /// 作用:攝像機跟隨人物 /// </summary> public class CameraMove
Lumious Unity3D UGUI強制重新整理Layout(佈局)元件
UGUI的Layout佈局元件確實節省了我們很多程式碼 如果不使用Layout元件 那麼光在計算UI的佈局上就要花費很大的功夫 特別是動態生成其元件的時候 當然,Layout元件在大多數時候是非常好用的 也有讓人頭疼的時候 比如,一個元件內需要展開或者摺疊
C# 事務處理 (簡單易懂)
操作 相互 用戶 因此 成功 綁定 執行 對數 序列 事務是並發控制單位,是用戶定義的一個操作序列(這些操作 要麽都做 要麽都不做)通過事務sql server 能將邏輯相關的一組操作綁定在一起,以便服務器保持數據的完整性特性:原子性(Atomicity)原子性是指事務包含
C#中對sqlserver進行增刪改查操作(簡單易懂)
uid 數據連接 net cti ade 密碼 logs where Go 1、添加引用using System.Data;using System.Data.SqlData;2、建立於數據庫的連接,建議將它做成一個方法,方便多次利用。string sqlconnectio
vue專案轉換成pdf檔案(簡單易懂)
1,新增兩個模組html2canvas和jspdf (1)npm install --save html2canvas(將頁面html轉換成圖片) (2)npm install --save
HDFS檔案讀寫操作 (通俗易懂)
首先來介紹兩個概念 ▪NameNode:領導級別。管 NameNode:領導級別。管理資料塊對映;處理客戶端的讀寫請求;配置副本策略;管理HDFS的名稱空間; DataNode:員工級別。負責儲存客戶端發來的資料塊block;執行資料塊的讀寫操作。 理資料 寫詳細步驟: 1、首先
傅立葉變換的意義和理解(通俗易懂)
這篇文章的核心思想就是:要讓讀者在不看任何數學公式的情況下理解傅立葉分析。 傅立葉分析不僅僅是一個數學工具,更是一種可以徹底顛覆一個人以前世界觀的思維模式。但不幸的是,傅立葉分析的公式看起來太複雜了,所以很多大一新生上來就懵圈並從此對它深惡痛絕。老實說,這麼有意思的東西居然成了大學裡的殺
SIR疾病傳播模型理論(通俗易懂)
youtube上看的視訊,然後截下圖做的筆記。 視訊中用的是一個學校,兒童爆發麻疹的的例子。 S是易感染的人群(即目前是健康,未感染的人), I是感染了的人群 R是感染後好了的,被移除了的人。(即不會再被感染) 他們各自的速率 由這張圖可以很清楚地看到他們的關
HTTP傳輸協議詳解(簡單易懂)
前言 HTTP: HyperText Transfer Protocol超文字傳輸協議,是網際網路上應用最為廣泛的一種網路協議,所有的WWW檔案都必須遵守這個標準;屬於應用層的面向物件的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年的使用與發展,得到不
hdu 2022 海選女主角(c語言)
hdu 2022 海選女主角 點選做題網站連結 題目描述 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description potato
爬蟲IP池驗證IP是否可用(簡單易懂)
IP池驗證IP是否可用 使用requests模組演示程式碼 具體的ip池這裡就不演示了,無非就是在代理的網站爬取收集大量的ip進行儲存,並沒有很大的難度,這裡主要演示驗證IP可用性的方法。 import requests url = "http://www.baidu.com/"
資料庫三大正規化詳解(通俗易懂)
◆ 第一正規化(1NF): 強調的是列的原子性,即列不能夠再分成其他幾列。考慮這樣一個表:【聯絡人】(姓名,性別,電話)如果在實際場景中,一個聯絡人有家庭電話和公司電話,那麼這種表結構設計就沒有達到 1NF。要符合 1NF 我們只需把列(電話)拆分,即:【聯絡人】(
什麼是分散式系統(通俗易懂)
最近做了一些分散式的專案,但還沒有真正的理解和認識什麼是分散式,以及為什麼要這麼設計等等一系統問題,在看過大神的貼子了,如夢初醒,受益匪淺! 著作權歸作者所有。 商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。 作者:林建入 連結:http://www.zhihu.c
深入理解vue中的slot與slot-scope (簡單易懂)
走在前端的大道上 插槽,也就是slot,是元件的一塊HTML模板,這塊模板顯示不顯示、以及怎樣顯示由父元件來決定。 實際上,一個slot最核心的兩個問題在這裡就點出來了,是顯示不顯示和怎樣顯示。 由於插槽是一塊模板,所以,對於任何一個元件,從模板種類的角度來分,其實都可以
對於spring中ioc的理解(淺顯易懂)
目錄 ioc是什麼? 首先ioc是Inversion of Control的縮寫 ,翻譯成中文就是:控制反轉的意思。接下來就把這個詞拆開來解釋 如何理解“控制”? 之前我們通過 "類名 物件名 = new 類名( )"的方式進行物件的建立,也就是說