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

Unity3D實現(xiàn)第一人稱移動,隨鼠標轉(zhuǎn)動視角+上樓梯(C#)

這篇具有很好參考價值的文章主要介紹了Unity3D實現(xiàn)第一人稱移動,隨鼠標轉(zhuǎn)動視角+上樓梯(C#)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Unity3D實現(xiàn)第一人稱移動,隨鼠標轉(zhuǎn)動視角+上樓梯(C#)

第一人稱移動:
1、在層級面板創(chuàng)建一個Capsule,命名為Player,將層級面板中的相機拖到Player下方
unity鼠標控制第一人稱相機旋轉(zhuǎn),Unity3D游戲制作基礎知識,c#,unity
2、重置Player和攝像機的Transform數(shù)值(方便調(diào)整攝像機在Player上的位置),然后調(diào)整攝像機在Player上的位置
unity鼠標控制第一人稱相機旋轉(zhuǎn),Unity3D游戲制作基礎知識,c#,unity
大概將攝像機放到Player眼睛的位置即可。
unity鼠標控制第一人稱相機旋轉(zhuǎn),Unity3D游戲制作基礎知識,c#,unity
3、創(chuàng)建一個腳本,命名為CameraControl。并掛載到攝像機上。
代碼內(nèi)容

public class CameraControl : MonoBehaviour
{
    public Transform player;//獲取玩家
    private float mouseX,mouseY;//獲取鼠標位置
    public float mouseSensitivity;//鼠標靈敏度
    private float xRotation;
    private void Update()
    {
        mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
        mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
        xRotation -= mouseY;//在上下移動視角后,防止Y的值反彈回0(若不加這一條,每次上下移動視角移動一下后,視角都會彈回原位置,不會固定)
        xRotation = Mathf.Clamp(xRotation, -70f, 70f);//攝像機上下視角限制,對于Player(主角)來說,視角上下是有限制的,不然會很詭異
        player.Rotate(Vector3.up*mouseX);//玩家隨鼠標旋轉(zhuǎn)
        transform.localRotation=Quaternion.Euler(xRotation,0,0);//攝像機旋轉(zhuǎn)
    }
}

4、將層級的Player拖到腳本中。
unity鼠標控制第一人稱相機旋轉(zhuǎn),Unity3D游戲制作基礎知識,c#,unity
效果:(圖中紅線是后面操作實現(xiàn)的,現(xiàn)在沒有是正確的)
unity鼠標控制第一人稱相機旋轉(zhuǎn),Unity3D游戲制作基礎知識,c#,unity
5、對Player,刪掉默認的Colider,添加Character Controller和Rigidbody
unity鼠標控制第一人稱相機旋轉(zhuǎn),Unity3D游戲制作基礎知識,c#,unity
6、調(diào)整ChararcterController中參數(shù)來讓碰撞體將Player包?。ㄖ饕{(diào)整半徑和高度)
unity鼠標控制第一人稱相機旋轉(zhuǎn),Unity3D游戲制作基礎知識,c#,unity
7、創(chuàng)建一個腳本,命名為PlayerMove,掛載到Player上。
我寫的是除了前后左右移動,當按下空格鍵,會加速

public class PlayerMove : MonoBehaviour
{

    // Start is called before the first frame update
    private float walk;
    private float run;
    private float speed;
    private Vector3 dir;
    private CharacterController playerController;
    void Start()
    {
        walk = 250.0f;
        run = 500.0f;
        playerController = GetComponent<CharacterController>();
    }
    void Update()
    {
        float vertical = Input.GetAxis("Vertical");
        float horizontal = Input.GetAxis("Horizontal");
        if (Input.GetKey(KeyCode.Space))
            speed = run;
        else
            speed = walk;
        dir = transform.forward * vertical + transform.right * horizontal;
        playerController.Move(dir*speed*Time.deltaTime);
    }
}

上樓梯(利用射線檢測)
8、在PlayerMove中添加代碼,完整代碼為

public class PlayerMove : MonoBehaviour
{
    private float walk;
    private float run;
    private float speed;
    private Vector3 dir;
    private Vector3 dirY;
    private CharacterController playerController;

    private Vector3 rayOrigin;
    private Ray ray;
    void Start()
    {
        walk = 250.0f;
        run = 500.0f;
        playerController = GetComponent<CharacterController>();
    }
    void Update()
    {
        float vertical = Input.GetAxis("Vertical");
        float horizontal = Input.GetAxis("Horizontal");
        if (Input.GetKey(KeyCode.Space))
            speed = run;
        else
            speed = walk;
        dir = transform.forward * vertical + transform.right * horizontal;
        playerController.Move(dir*speed*Time.deltaTime);
        
        rayOrigin = new Vector3(this.transform.position.x, this.transform.position.y, this.transform.position.z) +
                    this.transform.forward * speed;

        ray.origin = rayOrigin;
        ray.direction = new Vector3(0, -1, 0);
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit))
        {
            Debug.DrawLine(ray.origin,hit.point,Color.red);
        }
        dirY.y = -this.transform.position.y+ hit.point.y;
        playerController.Move(dirY);
    }

9、一定要將每個臺階加上碰撞體unity鼠標控制第一人稱相機旋轉(zhuǎn),Unity3D游戲制作基礎知識,c#,unity
最終運行效果:
unity鼠標控制第一人稱相機旋轉(zhuǎn),Unity3D游戲制作基礎知識,c#,unity文章來源地址http://www.zghlxwxcb.cn/news/detail-539105.html

到了這里,關于Unity3D實現(xiàn)第一人稱移動,隨鼠標轉(zhuǎn)動視角+上樓梯(C#)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關文章

  • unity3D 鼠標滾輪實現(xiàn)物體的大小縮放

    鼠標滾輪響應函數(shù)是Input.GetAxis(\\\"Mouse ScrollWheel\\\"),函數(shù)返回值類型是float,向前滾是返回正數(shù),向后滾是返回負數(shù),且鼠標滾輪滑動單次函數(shù)返回值為0.1 利用返回值修改模型transform.localscale,實現(xiàn)模型縮放 鼠標滾輪一直向后滾,會看見模型逐漸變小,當變到很小到消失的時候,

    2024年02月08日
    瀏覽(96)
  • Unity3d用Animator實現(xiàn)鼠標控制多個門開關

    Unity3d用Animator實現(xiàn)鼠標控制多個門開關

    本人Unity3d小白,目前正在學習U3d,這個功能想用Animator實現(xiàn),從Key幀到寫腳本摸索了三天時間,走了不少彎路,搜了不少實例,有版本改版原因也有的是在Unity中搭建的小場景,不涉及父物體,總之開始做的功能沒有實現(xiàn)。現(xiàn)在把我實現(xiàn)的方法記錄下來,算是對個功能的總結(jié)

    2024年02月13日
    瀏覽(27)
  • Unity3D實現(xiàn)鼠標懸浮UI或物體上顯示文字信息

    Unity3D實現(xiàn)鼠標懸浮UI或物體上顯示文字信息

    Unity工具 大家好,我是心疼你的一切,不定時更新Unity開發(fā)技巧,覺得有用記得一鍵三連哦。 本篇文章實現(xiàn)一個鼠標懸浮在ui或者物體上顯示文字的功能 unity鼠標懸浮ui顯示文字 鼠標進入UI執(zhí)行的 鼠標離開UI執(zhí)行的 鼠標在ui里滑動執(zhí)行的 1. 2. 搭建比較簡單,各位順便搭建吧。

    2024年02月04日
    瀏覽(492)
  • unity3d 實現(xiàn)第三人稱移動與攝像機調(diào)整

    unity3d 實現(xiàn)第三人稱移動與攝像機調(diào)整

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

    2024年02月11日
    瀏覽(31)
  • Unity3D學習記錄04——利用射線實現(xiàn)角色類似LOL的移動

    Unity3D學習記錄04——利用射線實現(xiàn)角色類似LOL的移動

    首先新建一個空白的GameObject,掛在一個MouseManager的腳本 實現(xiàn)思路: 通過獲取鼠標點擊的位置,獲得該位置的信息,然后使角色移動到該位置 MouseManager腳本的代碼如下: ? 代碼解釋: 先創(chuàng)建了一個Action類型的事件OnMouseClicked 這個是C#中事件的內(nèi)容,我們可以在滿足條件的時

    2024年02月08日
    瀏覽(24)
  • unity3D 鼠標鍵盤輸入

    unity3D 鼠標鍵盤輸入

    一、鼠標鍵盤輸入 游戲的輸入可以來自于鼠標,鍵盤,觸摸屏,游戲手柄 顯示一個Vector3類型的xyz的鼠標位置。 Input.GetButtonDown(0):0代表鼠標左鍵,1代表鼠標右鍵,如果鼠標左鍵按下返回true。 Input.GetKeyDown(\\\"space\\\"): 檢測空格是否按下。 更多操作可以查看Unity Script API( UnityE

    2024年02月10日
    瀏覽(17)
  • unity3d---移動、縮放、旋轉(zhuǎn)

    unity3d---移動、縮放、旋轉(zhuǎn)

    目錄 1.示意圖 2.觸屏移動與縮放+鍵盤移動、旋轉(zhuǎn)與縮放+鼠標移動旋轉(zhuǎn)與縮放 1.示意圖 ? 2.觸屏移動與縮放+鍵盤移動、旋轉(zhuǎn)與縮放+鼠標移動旋轉(zhuǎn)與縮放

    2024年02月06日
    瀏覽(95)
  • Unity3D 控制物體移動且自動旋轉(zhuǎn)

    Unity3D 控制物體移動且自動旋轉(zhuǎn)

    直接上代碼(改腳本掛載到游戲物體上) 第三人稱攝像機移動

    2024年02月15日
    瀏覽(97)
  • Unity3D方向鍵控制人物移動的代碼

    也可以換成 Translate 函數(shù)默認模式是 Space.Self ,此時移動方向需要為人物坐標系下的人物前進方向 Vector3(0, 0, 1) ;如果模式指定為 Space.World ,移動方向應該為世界坐標系下的人物前進方向 transform.forward , transform.forward 在人物轉(zhuǎn)向過程中會改變。如果不注意這個問題,人物轉(zhuǎn)

    2024年02月11日
    瀏覽(33)
  • Unity3D Button 鼠標懸浮進入與鼠標懸浮退出按鈕事件

    Unity3D Button 鼠標懸浮進入與鼠標懸浮退出按鈕事件

    由于甲方驗收未通過,項目需要改版,在修改界面時,想實現(xiàn)鼠標在一級菜單懸浮即可顯示二級菜單的功能,主要如下圖 注意,上圖鼠標只是懸浮在場景漫游按鈕上,并未點擊左鍵或右鍵等 思路是讓類繼承IPointerEnterHandler IPointerExitHandler兩個接口,然后實現(xiàn)其中的方法 代碼如

    2024年02月16日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包