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

【Unity3d】 教會你如何做一個簡單的電梯系統(tǒng)(升降平臺)

這篇具有很好參考價值的文章主要介紹了【Unity3d】 教會你如何做一個簡單的電梯系統(tǒng)(升降平臺)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? ? ?博主第一次寫博客,語言略俗,有不足之處還請指正!

? ? ? ?由于自己還處在unity小白階段,受2d升降平臺的影響(后續(xù)我也會上傳關于2d升降平臺的文章),突發(fā)奇想如何用3d做一個電梯系統(tǒng),查閱網(wǎng)上資料后,發(fā)現(xiàn)網(wǎng)上對這方面的講解少之又少,或者說其他博主提供的并非自己想要的效果,博主也是不斷地學習改進,最終才達到效果,所以想和大家分享一下我的學習成果,供大家學習參考。

? ? ? ?如果你正在學習unity,會發(fā)現(xiàn)其實做一個簡單的電梯系統(tǒng)很快就有思路,無非就是去觸發(fā)Trigger,通過電梯移動實現(xiàn)到達目標樓層,之前也有疑惑和網(wǎng)友交流過到底用Collider碰撞器還是Trigger觸發(fā)器去實現(xiàn),這兩種都是檢測碰撞,個人覺得Trigger實現(xiàn)起來簡單點,還有一個思路可能你會想到,在各個樓層安裝Collider,當電梯到達某樓層通過檢測碰撞,來置停電梯(本文不涉及,想實現(xiàn)的小伙伴可以自己嘗試)。

? ? ? ?本篇文章主要介紹我制作簡單電梯過程(不包括開關門,如果確切劃分也可以說是升降平臺),博主的想法是一個電梯,按下幾樓,電梯會將我們帶到幾樓,由于博主建模簡單,所以利用sphere(球體)代替角色,cube代替電梯(如下圖),采用踩Trigger實現(xiàn)前往目標樓層。

【Unity3d】 教會你如何做一個簡單的電梯系統(tǒng)(升降平臺)

? ? ? ?第一步,設計小球的運動,包括前后左右跳躍,攝像機部分省略(資源豐富),給小球加上Character Controller組件,新建C#文件,命名為PlayerController,通過中文API搜CharacterController.Move(為GameObject的移動提供附加組件),將其代碼復制給PlayController.cs文件,便可實現(xiàn)小球的運動(參數(shù)可自己修改)。

? ? ? ?第二步,設計電梯的運動,無非就是給電梯貼代碼,給Cube(可自由命名,以下均已Cube為例)加上Box Collider以及Rigidbody,勾選Is Kinematic,并鎖定X軸和Z軸,新建C#文件,命名為LiftController,代碼如下(MoveTowards函數(shù)可查閱中文API):

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

public class LiftController : MonoBehaviour
{
    public Collider coll;
    public Rigidbody rigid;
    public float speed;

    Vector3 OneLayer = new Vector3(0f, 0.1f, 0f);//一樓,實際情況根據(jù)自己修改,以下同理
    Vector3 TwoLayer = new Vector3(0f, 11.1f, 0f);//二樓
    Vector3 ThreeLayer = new Vector3(0f, 21.1f, 0f);//三樓

    void Start()
    {
        coll = gameObject.GetComponent<Collider>();
        rigid = gameObject.GetComponent<Rigidbody>();
        
    }

    void Update()
    {

    }

    public void One()
    {
        transform.position = Vector3.MoveTowards(transform.position, OneLayer, speed * Time.deltaTime);
    }
    public void Two()
    {
        transform.position = Vector3.MoveTowards(transform.position, TwoLayer, speed * Time.deltaTime);
    }

    public void Three()
    {
        transform.position = Vector3.MoveTowards(transform.position, ThreeLayer, speed * Time.deltaTime);
    }
}

? ? ? ?第三步,在Cube下新建三個空物體,加上Box Collider,并勾選Is Trigger,在(Inspector)檢視面板Tag下新增三個標簽,分別取名為One、Two、Three,并分別為其勾選上,其次可以分別改變?nèi)齻€空物體的Scale(X 0.2 ,Y 0.3 ,Z 0.5),并通過移動合理分配位置,為了便于角色判斷樓層,博主分別為三個空物體加上了Text(TMP),添加文字,調(diào)節(jié)即可,這樣我們?nèi)齻€觸發(fā)器就完成了。

? ? ? ?第四步,完善代碼,實現(xiàn)觸發(fā)器,在PlayController.cs中進行添加,PlayController.cs代碼如下:

using JetBrains.Annotations;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
    private CharacterController controller;
    private Vector3 playerVelocity;
    private bool groundedPlayer;
    public float playerSpeed;
    public float jumpHeight;
    public float gravityValue;
    /*以上為角色運動定義*/
    
    public GameObject Lift;
    public bool isoneColl = false;
    public bool istwoColl = false;
    public bool isthreeColl = false;
    /*以上定義便于判斷是否觸發(fā)*/

    void Start()
    {
        controller = gameObject.GetComponent<CharacterController>();
        Lift = GameObject.Find("Lift");//引號內(nèi)容為Cube的命名,可根據(jù)自己的改動
    }

    void Update()
    {
        Movement();
        LiftMove();
    }
    
    //角色移動
    void Movement()
    {
        groundedPlayer = controller.isGrounded;
        if (groundedPlayer && playerVelocity.y < 0)
        {
            playerVelocity.y = 0f;
        }

        Vector3 move = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
        controller.Move(move * Time.deltaTime * playerSpeed);

        if (move != Vector3.zero)
        {
            gameObject.transform.forward = move;
        }

        // Changes the height position of the player..
        if (Input.GetButton("Jump") && groundedPlayer)
        {
            playerVelocity.y += Mathf.Sqrt(jumpHeight * -3.0f * gravityValue);
        }

        playerVelocity.y += gravityValue * Time.deltaTime;
        controller.Move(playerVelocity * Time.deltaTime);
    }
    
    //觸發(fā)器
    private void OnTriggerEnter(Collider collision)
    {
        if (collision.tag == "One")
        {
            isoneColl = true;
            istwoColl = false;
            isthreeColl = false;
            Debug.Log("前往1樓");
        }
        if (collision.tag == "Two")
        {
            istwoColl = true;
            isoneColl = false;
            isthreeColl = false;
            Debug.Log("前往2樓");
        }
        if (collision.tag == "Three")
        {
            isthreeColl = true;
            istwoColl = false;
            isoneColl = false;   
            Debug.Log("前往3樓");
        }

    }

    //電梯移動
    void LiftMove()
    {
        if (isoneColl == true)
        {
            Lift.GetComponent<LiftController>().One();//調(diào)用函數(shù)
            Debug.Log("移動中...");
        }
        if (istwoColl == true)
        {
            Lift.GetComponent<LiftController>().Two();//調(diào)用函數(shù)
            Debug.Log("移動中...");
        }
        if (isthreeColl == true)
        {
            Lift.GetComponent<LiftController>().Three();//調(diào)用函數(shù)
            Debug.Log("移動中...");
        }
    }
    
}

? ? ? ? 運行之前,別忘了給電梯設置速度哦(博主設置為3),謝謝大家!文章來源地址http://www.zghlxwxcb.cn/news/detail-515670.html

到了這里,關于【Unity3d】 教會你如何做一個簡單的電梯系統(tǒng)(升降平臺)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • Unity3D教程:觸發(fā)器實現(xiàn)簡單的場景跳轉(zhuǎn)

    Unity3D教程:觸發(fā)器實現(xiàn)簡單的場景跳轉(zhuǎn)

    首先,需確保有一個想要跳轉(zhuǎn)的目標場景。在本案例中,目標場景是ending。 第一步:創(chuàng)建一個碰撞體,放置在需要的觸發(fā)場景跳轉(zhuǎn)的位置。 第二步:刪除多余的腳本,并且新建自己的腳本: 第三

    2024年02月12日
    瀏覽(24)
  • Unity3D與iOS的交互 簡單版開箱即用

    Unity3D與iOS的交互 簡單版開箱即用

    本文適合的情況如下: Unity客戶端人員 與 IOS端研發(fā)人員合作的情況 目錄 From U3D to iOS 實現(xiàn)原理 1.unity工程目錄創(chuàng)建2個文件?NativeCallProxy.m、NativeCallProxy.h?并且放到Unity工程目錄Plugins/iOS/unity_ios_plus目錄下 2.創(chuàng)建C#調(diào)用腳本?定義對應.mm腳本的 調(diào)用接口,調(diào)用也如下 實現(xiàn)原理 由

    2024年02月06日
    瀏覽(24)
  • 使用Unity3D創(chuàng)建一個立方體(Cube)游戲?qū)ο蟛覷nity

    Unity3D是一個強大的游戲開發(fā)引擎,可以用來創(chuàng)建各種類型的游戲和交互應用程序。在本文中,我們將探討如何使用Unity3D創(chuàng)建一個立方體(Cube)游戲?qū)ο?,并啟動Unity編輯器。 首先,確保你已經(jīng)安裝了Unity3D并且已經(jīng)在你的計算機上成功啟動。然后,按照以下步驟進行操作:

    2024年02月05日
    瀏覽(122)
  • Unity3D制作一個會移動的方塊(還不會移動照相機)

    Unity3D制作一個會移動的方塊(還不會移動照相機)

    學習 Unity3D 這么久了,如果你還不會制作一個按下 WASD 就可以移動的方塊的話,那么你的學習將沒有一點成就感,我學習的時候,我決定 先學習移動 ,這樣我就會對 Unity 更加感興趣,學習起來的動力會更為充足 先創(chuàng)建一個項目,名為move,如果你手頭有一個隨便亂用的項目

    2024年02月14日
    瀏覽(22)
  • 【unity3D】如何修改相機的默認視角

    【unity3D】如何修改相機的默認視角

    ?? 未來的游戲開發(fā)程序媛,現(xiàn)在的努力學習菜雞 ??本專欄是我關于游戲開發(fā)的學習筆記 ??本篇是unity的如何修改相機的默認視角 Game窗口運行的話視角是這樣的: 此時Scene窗口的視角是這樣的,可以觀察到人物變化,但是我現(xiàn)在需要游戲運行起來從Game窗口進行操作來觀察

    2024年02月09日
    瀏覽(19)
  • 【unity3D】Dropdown組件 — 如何使用下拉菜單

    【unity3D】Dropdown組件 — 如何使用下拉菜單

    ?? 未來的游戲開發(fā)程序媛,現(xiàn)在的努力學習菜雞 ??本專欄是我關于游戲開發(fā)的學習筆記 ??本篇是unity的Dropdown組件 介紹:Unity的Dropdown組件是一種UI控件,用于在下拉列表中顯示選項或選項組。它允許用戶從列表中選擇一個選項,并可以在選擇時觸發(fā)特定的行為或事件。通

    2024年02月06日
    瀏覽(91)
  • 【Unity3D】小tips:如何在Unity中切換三視圖

    【Unity3D】小tips:如何在Unity中切換三視圖

    項目需要在Unity中比較精確地移動樞軸位置,找了一圈,沒發(fā)現(xiàn)直接切三視圖的方法。后來發(fā)現(xiàn),可以直接用正交視圖! Step1 Unity中可以在Gizmos中切換透視(Perspective)與正交(Orthogonality)視圖。點擊中間小方塊塊或Persp字樣,變?yōu)檎灰晥D。 透視試圖Persp:近大遠小 正交視

    2024年02月14日
    瀏覽(39)
  • 如何將Unity3D中的腳本打包成為DLL類庫?

    如何將Unity3D中的腳本打包成為DLL類庫?

    如果我們想把代碼打成DLL,首先需要有一個Assembly和一個合理的代碼目錄結構規(guī)劃。 1.將要歸為一類的腳本放進同一個文件內(nèi),在該文件夾下右鍵創(chuàng)建一個Assembly Definition,默認它會將同文件夾以及子目錄內(nèi)的腳本歸為一個Assembly。 2.在Editor下創(chuàng)建一個CompileDll腳本來將我們的腳

    2024年02月12日
    瀏覽(28)
  • Unity3D 服務器邏輯和傳輸如何分層/解耦詳解

    Unity3D 是一款強大的游戲開發(fā)引擎,它提供了豐富的功能和工具,使得開發(fā)者可以輕松地創(chuàng)建高質(zhì)量的游戲。在游戲開發(fā)過程中,服務器邏輯和傳輸是非常重要的組成部分。本文將詳細介紹如何在Unity3D中實現(xiàn)服務器邏輯和傳輸?shù)姆謱雍徒怦睢?對啦!這里有個游戲開發(fā)交流小組

    2024年01月16日
    瀏覽(55)
  • 【Unity3D賽車游戲】【五】Unity中汽車加速效果是如何優(yōu)化的?

    【Unity3D賽車游戲】【五】Unity中汽車加速效果是如何優(yōu)化的?

    ?????個人主頁 :@元宇宙-秩沅 ????? hallo 歡迎 點贊?? 收藏? 留言?? 加關注?! ????? 本文由 秩沅 原創(chuàng) ????? 收錄于專欄 :Unity游戲demo – ??????版本: Unity2021 ??????適合人群:Unity初學者 ??????學習目標:3D賽車游戲的基礎制作 ??????技能掌握

    2024年02月10日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包