Unity實(shí)現(xiàn)鼠標(biāo)點(diǎn)2D轉(zhuǎn)3D進(jìn)行旋轉(zhuǎn)
本文實(shí)例為大家分享了Unity實(shí)現(xiàn)鼠標(biāo)點(diǎn)2D轉(zhuǎn)3D進(jìn)行旋轉(zhuǎn)的具體代碼,供大家參考,具體內(nèi)容如下
代碼如下:
using UnityEngine;
public class GunFollowMouse : MonoBehaviour {
public RectTransform UGUICanvas;
public Camera mainCamera;
//攝像機(jī)旋轉(zhuǎn)的緩動(dòng)速率
private float rotateSpeed = 5;
void Start () {
}
void Update () {
//定義一個(gè)世界坐標(biāo)的鼠標(biāo)點(diǎn)
Vector3 mousePos;
//獲取當(dāng)前canvas下鼠標(biāo)的二維坐標(biāo)點(diǎn) 轉(zhuǎn)化為三維 out出來(lái)
RectTransformUtility.ScreenPointToWorldPointInRectangle(UGUICanvas,
new Vector2(Input.mousePosition.x, Input.mousePosition.y),
mainCamera, out mousePos
);
//炮臺(tái)的旋轉(zhuǎn)角度
float angle;
//向量dirMouse為鼠標(biāo)的向量減去槍的起始向量得到槍到鼠標(biāo)位置的方向向量
Vector3 dirMouse = mousePos - transform.position;
angle = Vector3.Angle(dirMouse, Vector3.up);//直接得到兩個(gè)向量之間的夾角,這個(gè)角度是沒(méi)有正負(fù)的
if (mousePos.x > transform.position.x)
{
angle = - angle;
}
transform.localRotation = Quaternion.Lerp(transform.localRotation, Quaternion.Euler(0, 0, angle)
, Time.deltaTime * rotateSpeed);
}
}
旋轉(zhuǎn)效果如下圖:


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
VS2015為console.readkey添加代碼片段的方法
這篇文章主要介紹了VS2015為console.readkey添加代碼片段的方法,需要的朋友可以參考下2016-12-12
C#多線程處理多個(gè)隊(duì)列數(shù)據(jù)的方法
本文將結(jié)合實(shí)例代碼,介紹C#多線程處理多個(gè)隊(duì)列數(shù)據(jù)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
C#用Parallel.Invoke方法盡可能并行執(zhí)行提供的每個(gè)線程
本文主要介紹了C#用Parallel.Invoke方法盡可能并行執(zhí)行提供的每個(gè)線程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01
C#連接Oracle數(shù)據(jù)庫(kù)字符串(引入DLL)的方式
這篇文章主要給大家介紹了關(guān)于C#連接Oracle數(shù)據(jù)庫(kù)字符串(引入DLL)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
C#使用有道ip地址查詢(xún)接口方法實(shí)例詳解
這篇文章主要介紹了C#使用有道ip地址查詢(xún)接口方法,實(shí)例分析了有道IP地址查詢(xún)接口的使用方法與數(shù)據(jù)返回格式,需要的朋友可以參考下2015-05-05
C#下實(shí)現(xiàn)創(chuàng)建和刪除目錄的實(shí)例代碼
這篇文章主要介紹了C#下實(shí)現(xiàn)創(chuàng)建和刪除目錄的方法,功能非常實(shí)用,需要的朋友可以參考下2014-08-08
C#獲取計(jì)算機(jī)硬件與操作系統(tǒng)的相關(guān)信息
這篇文章介紹了C#獲取計(jì)算機(jī)硬件與操作系統(tǒng)相關(guān)信息的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
C#實(shí)現(xiàn)讀取指定盤(pán)符硬盤(pán)序列號(hào)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)讀取指定盤(pán)符硬盤(pán)序列號(hào)的方法,涉及C#針對(duì)硬件屬性的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-08-08
關(guān)于Flyweight模式應(yīng)用實(shí)踐的相關(guān)介紹
本篇文章,小編將為大家介紹Flyweight模式應(yīng)用實(shí)踐,有需要的朋友可以參考一下2013-04-04

