unity,碰撞

Hierarchy中的 Directional Light(平行光)的Intensity(强度),调整可改变光的强度(亮度)

Hierarchy中的物体 Inspector 中 Add Component—>Rigidbody(刚体)(在3D中使用,2d中使用Rigidbody 2D)

Terrain中的Terrain Collider是Terrain的碰撞器,刚体与其碰撞产生的效果与其碰撞器有关

Rigidbody中的属性:Mass–>质量(影响物体的惯性,与其他物体碰撞时产生的力的大小),Drag—>各种类型的摩擦力,如空气阻力,旋转时的摩擦力等,Angular Drag—>旋转时的摩擦力,是否使用重力等等。。Constraints中Freeze Position—>锁定刚体沿X,Y,Z轴方向的移动,,Freeze Rotation—>锁定刚体以X,Y,Z为轴心的滚动。

将物体的碰撞器不进行勾选,则物体无法与刚体碰撞,刚体会穿过该物体。

碰撞器有多种,Box Collider,Capsule Collider,Sphere Collider由于顶点较少,最节约性能,优先推荐使用,Mesh Collider—>碰撞器形状默认与物体的Mesh Filter(物体原形状)一致,(一般顶点,网格较多,最耗费性能)

碰撞检测函数:在Project中Create一个C# Script,在Hierarchy中选择你要检测其碰撞的物体,并将创建的C# Script拖拽到其Inspector中,右键拖拽后的Script,选择Edit Script,在脚本代码中添加 private void OnCollisionEnter(Collision collision){},当检测的物体与别的物体发生碰撞时,Unity就会自动调用该函数—>【一次碰撞只会调用一次】,,如在方法体内添加输出函数:print(“111”); 运行游戏后,Unity右下角Console就会弹出提示消息“111”,次数为测试的物体发生碰撞的次数—>与几个物体发生碰撞。

碰撞产生的条件,,两个物体都具有碰撞器,且其中至少一个物体是正常的(非Kinematic的)刚体。,,is Kinematic勾选上后刚体将静止。

碰撞检测函数:

private void OnCollisionEnter(Collision collision)-->仅在与物体刚开始接触的那一帧被调用
{
    print("在此刻开始接触");
    print(collision.collider);--->输出被碰撞物体的碰撞器
    print(collision.collider.name);--->输出被碰撞物体的名字
    print(collision.collider.tag);--->输出被碰撞物体的标签
}

private void OnCollisionStay(Collision collision)-->与物体接触的每一帧都会被调用
{
    print("正在接触");
}
private void OnCollisionExit(Collision collision)-->仅在与物体刚离开的那一帧被调用
{
    print("在此刻离开");
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值