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("在此刻离开");
}