国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity丨移動(dòng)相機(jī)朝向目標(biāo)并確定目標(biāo)在攝像機(jī)可視范圍內(nèi)丨攝像機(jī)注釋模型丨攝像機(jī)移動(dòng)丨不同尺寸模型優(yōu)化丨

這篇具有很好參考價(jià)值的文章主要介紹了Unity丨移動(dòng)相機(jī)朝向目標(biāo)并確定目標(biāo)在攝像機(jī)可視范圍內(nèi)丨攝像機(jī)注釋模型丨攝像機(jī)移動(dòng)丨不同尺寸模型優(yōu)化丨。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

問(wèn)題描述

本文提供的功能是攝像機(jī)朝向目標(biāo)移動(dòng),并確定整個(gè)目標(biāo)出現(xiàn)在攝像機(jī)視角內(nèi),針對(duì)不同尺寸的模型優(yōu)化。

功能展示

提示:這里可以添加技術(shù)名詞解釋
Unity丨移動(dòng)相機(jī)朝向目標(biāo)并確定目標(biāo)在攝像機(jī)可視范圍內(nèi)丨攝像機(jī)注釋模型丨攝像機(jī)移動(dòng)丨不同尺寸模型優(yōu)化丨,unity,數(shù)碼相機(jī),游戲引擎

技術(shù)細(xì)節(jié)

直接上代碼

using UnityEngine;

public class CameraController : MonoBehaviour
{
    public Transform target; // 模型的Transform組件
    public float moveSpeed = 5.0f; // 攝像機(jī)移動(dòng)速度
    public float rotationSpeed = 2.0f; // 攝像機(jī)旋轉(zhuǎn)速度
    public float minDistance = 2.0f; // 攝像機(jī)與模型的最小距離
    public float maxDistanceMultiplier = 1.0f; // 最大距離的倍數(shù)

    private Vector3 targetOffset; // 目標(biāo)相對(duì)于中心的偏移

    private void Start()
    {
        if (target == null)
        {
            Debug.LogWarning("目標(biāo)模型為空,請(qǐng)?jiān)贗nspector中指定目標(biāo)模型的Transform組件。");
            return;
        }

        // 初始化目標(biāo)偏移
        targetOffset = target.position - transform.position;
    }

    private void Update()
    {
        if (target == null)
            return;

        // 計(jì)算攝像機(jī)指向目標(biāo)的方向
        Vector3 targetDirection = target.position - transform.position;
        targetDirection.y = 0; // 如果只關(guān)注水平方向,可以將y軸置為0

        // 計(jì)算攝像機(jī)應(yīng)該旋轉(zhuǎn)的角度
        Quaternion targetRotation = Quaternion.LookRotation(targetDirection);

        // 平滑地旋轉(zhuǎn)攝像機(jī)朝向目標(biāo)
        transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, rotationSpeed * Time.deltaTime);

        // 計(jì)算攝像機(jī)與目標(biāo)的距離
        float distance = Vector3.Distance(transform.position, target.position);

        // 根據(jù)模型的大小自動(dòng)調(diào)整最小距離
        float modelSize = CalculateModelSize();
        float minDistance = modelSize * 0.5f;

        // 計(jì)算最大距離
        float maxDistance = modelSize * maxDistanceMultiplier;

        // 限制距離在最小和最大范圍內(nèi)
        distance = Mathf.Clamp(distance, minDistance, maxDistance);

        // 移動(dòng)攝像機(jī)向前
        transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);

        // 計(jì)算目標(biāo)的期望位置
        Vector3 desiredPosition = target.position - targetOffset - targetDirection.normalized * distance;

        // 平滑移動(dòng)攝像機(jī)到期望位置
        transform.position = Vector3.Lerp(transform.position, desiredPosition, Time.deltaTime * moveSpeed);
    }

    // 計(jì)算模型的大小
    private float CalculateModelSize()
    {
        // 這里可以根據(jù)模型的具體情況來(lái)計(jì)算大小
        // 例如,可以獲取模型的包圍盒尺寸
        // 也可以根據(jù)模型中的特定標(biāo)記來(lái)計(jì)算大小
        // 這里只是一個(gè)示例,需要根據(jù)實(shí)際情況進(jìn)行調(diào)整
        Bounds bounds = new Bounds(target.position, Vector3.one);
        Renderer[] renderers = target.GetComponentsInChildren<Renderer>();
        foreach (Renderer renderer in renderers)
        {
            bounds.Encapsulate(renderer.bounds);
        }

        // 返回模型的大?。ò鼑械膶?duì)角線長(zhǎng)度)
        return bounds.size.magnitude;
    }
}

小結(jié)

后期可擴(kuò)展功能:類似點(diǎn)擊目標(biāo)完成視角移動(dòng)等。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-732314.html

到了這里,關(guān)于Unity丨移動(dòng)相機(jī)朝向目標(biāo)并確定目標(biāo)在攝像機(jī)可視范圍內(nèi)丨攝像機(jī)注釋模型丨攝像機(jī)移動(dòng)丨不同尺寸模型優(yōu)化丨的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Unity攝像機(jī)旋轉(zhuǎn)與移動(dòng)腳本實(shí)現(xiàn)

    ? ? ? ? 最近做項(xiàng)目經(jīng)常用到需要控制攝像機(jī)的地方,查閱了網(wǎng)上的方法后,以自己的需要寫了一個(gè)這樣的功能。希望對(duì)碼友有所幫助 ? ? ? ?(本腳本放在攝像機(jī)上) ? ? ? ? 攝像機(jī)腳本功能: ? ? ? ? ? 1、通過(guò)鍵盤的WASD鍵控制攝像機(jī)的前后左右移動(dòng) ? ? ? ? ? 2、通過(guò)

    2024年02月13日
    瀏覽(91)
  • Unity實(shí)現(xiàn)2D游戲跟隨攝像機(jī)(平滑移動(dòng))

    Unity實(shí)現(xiàn)2D游戲跟隨攝像機(jī)(平滑移動(dòng))

    攝像機(jī)運(yùn)行效果如下所示。 首先創(chuàng)建一個(gè)可用的玩家角色,寫好移動(dòng)邏輯,如果要使用在Unity商店中購(gòu)買的資源,可以點(diǎn)擊Window菜單欄 Package Manager選項(xiàng),來(lái)打開(kāi)Package Manager窗口,如下所示,然后下載你需要的資源。 如果你沒(méi)有在資源商店的精靈資產(chǎn),可以在Hierarchy視圖,右

    2024年02月19日
    瀏覽(20)
  • Unity 控制攝像機(jī)鏡頭的上下左右移動(dòng)

    ? ? ? ? private float FollowPosx,FollowPosy; ? ? private float moveAmount=5; ? //控制鏡頭的移動(dòng)速度 ? ? // Update is called once per frame ? ? void Update() ? ? { ? ? ? ? if (Input.mousePosition.y Screen.height * 0.9)//如果鼠標(biāo)位置在頂部,就向上移動(dòng) ? ? ? ? { ? ? ? ? ? ? FollowPosy += moveAmount * Time.delta

    2024年02月11日
    瀏覽(25)
  • Unity角色或攝像機(jī)移動(dòng)和旋轉(zhuǎn)的控制腳本

    Unity角色或攝像機(jī)移動(dòng)和旋轉(zhuǎn)的控制腳本

    該腳本掛載到需要被移動(dòng)、旋轉(zhuǎn)控制的物體身上,也可以之間掛在到攝像機(jī)上! 掛載到攝像機(jī)上可以實(shí)現(xiàn)第一人稱視角控制! 掛載到物體身上,配合攝像機(jī)跟蹤腳本可以實(shí)現(xiàn),第三人稱視角控制!? 將角色控制腳本掛給攝像機(jī)即可! 以下是角色控制腳本: 將上面, 角色控

    2024年02月06日
    瀏覽(25)
  • Unity【角色/攝像機(jī)移動(dòng)控制】【2.角色跟隨鼠標(biāo)轉(zhuǎn)向】

    本章代碼實(shí)現(xiàn)基于本系列的【1.角色移動(dòng)】 在前面的基礎(chǔ)上,我們?cè)赑layerController腳本中添加如下函數(shù),隨后在update方法中調(diào)用即可: 其中mouseSensitivity是前面自定義的一個(gè)float變量,用來(lái)調(diào)節(jié)對(duì)鼠標(biāo)轉(zhuǎn)向速度,至此,當(dāng)我們轉(zhuǎn)動(dòng)鼠標(biāo),角色也會(huì)跟著轉(zhuǎn)動(dòng)

    2024年02月22日
    瀏覽(19)
  • 【Unity每日一記】向量操作攝像機(jī)的移動(dòng)(向量加減)

    【Unity每日一記】向量操作攝像機(jī)的移動(dòng)(向量加減)

    ?????個(gè)人主頁(yè) :@元宇宙-秩沅 ????? hallo 歡迎 點(diǎn)贊?? 收藏? 留言?? 加關(guān)注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 : unity每日一記 ?【Unityc#專題篇】之c#系統(tǒng)化大禮包】 ?【unity數(shù)據(jù)持久化】數(shù)據(jù)管理類_PlayerPrfs ?【unity本站最全系列】unity常用API大全

    2024年02月13日
    瀏覽(29)
  • 【Unity】攝像機(jī)跟隨鼠標(biāo)移動(dòng)以物體為中心旋轉(zhuǎn) 物體根據(jù)視線方向移動(dòng)

    【Unity】攝像機(jī)跟隨鼠標(biāo)移動(dòng)以物體為中心旋轉(zhuǎn) 物體根據(jù)視線方向移動(dòng)

    描述 實(shí)現(xiàn)攝像機(jī)根據(jù)鼠標(biāo)移動(dòng)跟隨物體旋轉(zhuǎn),以攝像機(jī)前物體為中心,攝像機(jī)圍繞物體旋轉(zhuǎn),并使攝像機(jī)時(shí)刻指向物體 實(shí)現(xiàn)效果 Unity 組件設(shè)置 Camera 組件設(shè)置 Body 組件設(shè)置 實(shí)現(xiàn)代碼 CameraRotateMove.cs 攝像機(jī)跟隨和旋轉(zhuǎn) move_better.cs 物體根據(jù)按鍵移動(dòng)

    2024年02月08日
    瀏覽(41)
  • unity3d 實(shí)現(xiàn)第三人稱移動(dòng)與攝像機(jī)調(diào)整

    unity3d 實(shí)現(xiàn)第三人稱移動(dòng)與攝像機(jī)調(diào)整

    首先展示效果 unity3d 關(guān)于人物移動(dòng),這里推薦使用Character Conrroller組件,優(yōu)點(diǎn)就是可以不用處理剛體,不受重力的影響,自帶物理碰撞檢測(cè)。 ?人物移動(dòng)代碼包括轉(zhuǎn)向 接下來(lái)就是攝影機(jī)的調(diào)整,這里使用unity自帶的插件cinemachine,非常的推薦,無(wú)需使用冗雜的代碼即可設(shè)計(jì)較好

    2024年02月11日
    瀏覽(31)
  • 【unity】關(guān)于unity3D攝像機(jī)視角移動(dòng)的幾種方式詳解

    【unity】關(guān)于unity3D攝像機(jī)視角移動(dòng)的幾種方式詳解

    目錄 一、前言 二、Transform基礎(chǔ) 1、幾種坐標(biāo)系 2、position和localPosition屬性 3、rotation屬性 三、攝像機(jī)的平移 1、鍵盤控制平移 2、鼠標(biāo)控制平移 3、整合? 四、攝像機(jī)的旋轉(zhuǎn) 1、繞自身旋轉(zhuǎn) 2、繞目標(biāo)物體旋轉(zhuǎn) 3、整合? 五、優(yōu)化功能 1、調(diào)整速率 2、切換目標(biāo)物體 3、設(shè)置常用攝

    2024年02月04日
    瀏覽(21)
  • Unity3D攝像機(jī),鍵盤控制前后左右上下移動(dòng),鼠標(biāo)控制旋轉(zhuǎn)、放縮

    Unity3D中運(yùn)行場(chǎng)景時(shí),實(shí)現(xiàn)攝像機(jī)的前、后、左、右、上、下,以及鼠標(biāo)滾輪的放縮,鼠標(biāo)右鍵的旋轉(zhuǎn)操作。親測(cè)有效,可供參考。 按鍵功能介紹:W——前;S——后;A——左;D——右;Q——下降;E——上升;鼠標(biāo)右鍵——旋轉(zhuǎn);鼠標(biāo)滾輪——放縮。 Tourcamera腳本需要掛在攝

    2024年02月11日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包