Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(61评价)
价格: 2175.00元
<如何使用Unity5.3开发2D游戏>如何在代码中区分碰撞过程中的具体物体
青暮发起了问答2018-03-10
8
回复
541
浏览

在如何使用Unity5.3开发2D游戏的课程里面,有一段代码,是小球与板(player)碰撞,在碰撞过程中利用player的y方向上的速度修改小球y方向的速度,代码是这样的,这段代码是在小球的脚本里面:

我的问题是在这段代码里,我分不清楚在碰撞过程中怎样的代码代表小球,怎样的代码代表player,这两者有点混淆,麻烦老师解释一下,谢谢。

所有回复
  • 开发者微光 2018-03-10

    //如果碰撞体的标签是“player”

    //首先将player的vector2参数存储起来

    //然后 将 player的y方向上的速度修改小球y方向的速度 计算并存储起来

    //最后将影响的数值 赋值给player

     

     

    • 青暮 2018-03-10

      不对哦,最后肯定是赋值给小球的,我就是分不清rigidbody2D.velocity这个速度,什么时候是指小球的,什么时候是指player的,因为两个物体身上都有rigidbody2D啊,然后velocity.y又是指的谁的速度,就这种分不清

      (1) 回复
    • 开发者微光 2018-03-11

      你把前面代码也发个我确定一下

      (1) 回复
    • Milk 2018-03-12

      回复 @ 青暮: rigidbody2D这个变量在你小球代码中应该是存储小球的,你去对这个变量赋值的那个地方看看,而collision.rigidbody是小球碰撞到的物体,你提供的代码是碰撞到物体,它标签为"Player"的物体,那么这个collision.rigidbody就是那"Player”的rigidbody,但是,在这个游戏开发中应该要2D的,而且这种默认获取方法是不支持了,应该改为GetComponent<Rigidbody2D>()这样的来获取。

      (1) 回复
    • 青暮 2018-03-13

      回复 @ Milk: 谢谢,你说的很清楚,明白了

      (1) 回复
    还有-1条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2018-03-12

    首先记住一点,当前脚本在小球身上还是板子身上,如果是小球身上,直接访问刚体rigidibody2d,访问的就是小球的刚体

    collision里面保存的就是小球碰撞到的别的物体的信息(包括别的物体的碰撞器,别的物体的刚体)

    还有-3条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!