无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

Unity C# 初級(jí)編程| 10 . 角色跳躍練習(xí)

2021-03-29 19:08 作者:那個(gè)人真狗  | 我要投稿

實(shí)現(xiàn)物體跳躍

  • 創(chuàng)建倆個(gè)物體一個(gè)角色,一個(gè)地面。



  • 給操作物體增加一個(gè)物理碰撞,

  • 因?yàn)槭?D游戲,所以3D物體使用2D碰撞也是沒有關(guān)系的。

    所以地面也想要增加一個(gè)碰撞

  • 調(diào)整物體位置高一點(diǎn),設(shè)置一下重力

  • 調(diào)整攝像機(jī)在游戲視圖顯示成2D效果

  • 創(chuàng)建一個(gè)腳本—MyJump跳

  • 制作前思考一下,需要怎么制作。

    • 根據(jù)我們前面學(xué)習(xí)到的知識(shí),前制作一個(gè)左右移動(dòng)

    • 那就需要一個(gè)移動(dòng)速度

    • 需要我們對這個(gè)物體操作

  • 前創(chuàng)建倆個(gè)變量

  • 一個(gè)是指定我們的物體 ? ?一個(gè)是設(shè)置移動(dòng)速度

    Stadt() ?腳本執(zhí)行調(diào)用一次

  • 執(zhí)行的時(shí)候調(diào)用我們的這個(gè)物體

    • 前使用我們原來學(xué)習(xí)過的方法制作一個(gè)左右位移動(dòng)

    • 定義一個(gè)局部變量 ?moveInput ? (移動(dòng)輸入)

  • 使用位移函數(shù)

  • 這個(gè)效果制作完了,確定是可以位移了,可以會(huì)插到墻壁里面

  • 這不是我們想要的效果????????????????????????

  • 準(zhǔn)備使用第二種 新的位移方式 控制碰撞體移動(dòng)

  • Rigidbody.velocity (剛體的速度向量)


    • rb 就是這個(gè)物體 ?velocity ?當(dāng)前速度, ? ?改變這個(gè)當(dāng)前速度,就可以了,

    擴(kuò)展


  • Rigidbody.velocity ? ? ? ? ? ? ? ? ? ? ? ? ?剛體速度

    給我剛體一個(gè)速度:

    horizontal = Input.GetAxis("Horizontal");

    vertical = Input.GetAxis("Vertical");

    direction = new Vector3(horizontal,0f,vertical);

    rb.velocity = speed * direction;

  • Rigidbody.MovePosition() ? ? ? ? ? ? ?移動(dòng)剛體位置

    移動(dòng)到新的position:

    Vector3 movement; float h = Input.GetAxisRaw("Horizontal");

    float v = Input.GetAxisRaw("Vertical");

    movement.Set(h, 0f, v);

    movement = movement.normalized * speed * Time.deltaTime;

    playerRigidbody.MovePosition(transform.position + movement);

  • Rigidbody.AddForce ? ? ? ? ? ? ? ? ? ? ? ?給剛體一個(gè)力

    rb.AddForce(transform.forward * thrust);

    public float thrust;

    rb.AddForce(0, 0, thrust, ForceMode.Impulse);


注意:

為什么不使用第一種方法,是因?yàn)槲覀內(nèi)绻龅截Q著的墻面會(huì)插入墻壁,使用第二種碰撞正好

設(shè)置這個(gè)物體

第二個(gè)階段 設(shè)置跳

  • 新建一個(gè)布爾類型的變量,判斷,角色是否跳起來了,

  • 第二個(gè)步是,需要一個(gè)位置類型,判斷角色是否站到平面上。所以需要?jiǎng)?chuàng)建一個(gè)Transform類型

    還需要一個(gè)判斷這個(gè)位置半徑的變量。(float類型)

  • 還需要判斷一下和那個(gè)層級(jí)發(fā)生檢測

  • 那看一下外部屬性

  • 做這一步的目的是判斷是否可以按空格

  • 定義一個(gè)新變量,控制跳起的速度

  • 外部給角色制作一個(gè)判斷地面的Transform

  • 編輯器打開主角———右建創(chuàng)建一個(gè)——命名feetPos



  • 命名,為了好在場景中看到,在右邊設(shè)置一下。

  • 這樣在場景中看到的效果就更好了。我們需要吧這個(gè)定位點(diǎn)放到角色腳下。

  • 指定到我們腳本的位置,設(shè)置屬性

    下面的Whadt 需要?jiǎng)?chuàng)建一個(gè)新的層級(jí),

    在Layer里增加一個(gè)

  • 新的層級(jí) Ground ?把地面物體設(shè)置這個(gè)層,

  • 表示這個(gè)人物腳點(diǎn)的掛點(diǎn)和這個(gè)物體判斷。

  • 點(diǎn)擊播放看一下效果

  • 現(xiàn)在的效果是按空格跳起來的時(shí)候,在按一下空格還會(huì)在跳,無限高,所以需要限制一下

  • Check Padous 判斷值太大了, 修改0.3

  • 增加三個(gè)變量

  • 點(diǎn)一下空格,走這一段代碼

  • 按住空格執(zhí)行下面這些代碼


  • JumpTme就是外部輸入的數(shù)值。

  • 判斷這個(gè)數(shù)值,如果大于0 就執(zhí)行起跳數(shù)值,用設(shè)置的時(shí)間減去執(zhí)行的時(shí)間。

    總結(jié)

  • JumpTime ? 表示空格鍵可以按多長時(shí)間,按的時(shí)間越長跳的越高。

  • 這個(gè)效果是實(shí)現(xiàn)按不同時(shí)間實(shí)現(xiàn)跳的高度也是不一樣的


  • JumpTime時(shí)間越大按住的跳的越高。

    正常數(shù)值0.5就差不多,


Unity C# 初級(jí)編程| 10 . 角色跳躍練習(xí)的評論 (共 條)

分享到微博請遵守國家法律
集安市| 铜梁县| 安达市| 湖北省| 华宁县| 上林县| 浦江县| 日喀则市| 石柱| 盐城市| 明溪县| 通许县| 永泰县| 东辽县| 内丘县| 松桃| 肃北| 奎屯市| 清涧县| 邵东县| 抚州市| 包头市| 维西| 宁海县| 五华县| 安远县| 鸡泽县| 财经| 正宁县| 那曲县| 广宁县| 茶陵县| 高密市| 巴彦县| 教育| 陇川县| 大悟县| 青田县| 乌兰浩特市| 永年县| 绵竹市|