学员(5290)
课程(204)
分享
提供专属的一对一在线答疑,快速答疑解惑。
及时响应学习咨询,帮助解决问题。
购买后7天内可申请无理由退款。
购买后30天内如遇降价,可申请价保。
对于提问做到有问必答,帮您扫清学习过程中的种种障碍
在如何使用Unity5.3开发2D游戏的课程里面,有一段代码,是小球与板(player)碰撞,在碰撞过程中利用player的y方向上的速度修改小球y方向的速度,代码是这样的,这段代码是在小球的脚本里面:
我的问题是在这段代码里,我分不清楚在碰撞过程中怎样的代码代表小球,怎样的代码代表player,这两者有点混淆,麻烦老师解释一下,谢谢。
//如果碰撞体的标签是“player”
//首先将player的vector2参数存储起来
//然后 将 player的y方向上的速度修改小球y方向的速度 计算并存储起来
//最后将影响的数值 赋值给player
不对哦,最后肯定是赋值给小球的,我就是分不清rigidbody2D.velocity这个速度,什么时候是指小球的,什么时候是指player的,因为两个物体身上都有rigidbody2D啊,然后velocity.y又是指的谁的速度,就这种分不清
你把前面代码也发个我确定一下
回复 @ 青暮: rigidbody2D这个变量在你小球代码中应该是存储小球的,你去对这个变量赋值的那个地方看看,而collision.rigidbody是小球碰撞到的物体,你提供的代码是碰撞到物体,它标签为"Player"的物体,那么这个collision.rigidbody就是那"Player”的rigidbody,但是,在这个游戏开发中应该要2D的,而且这种默认获取方法是不支持了,应该改为GetComponent<Rigidbody2D>()这样的来获取。
回复 @ Milk: 谢谢,你说的很清楚,明白了
首先记住一点,当前脚本在小球身上还是板子身上,如果是小球身上,直接访问刚体rigidibody2d,访问的就是小球的刚体
collision里面保存的就是小球碰撞到的别的物体的信息(包括别的物体的碰撞器,别的物体的刚体)
明白了,谢谢老师
回复 @ 青暮: 不客气