Rigidbody和Collider

Rigidbody:

常用属性:

Mass:默认为1,单位并不是g或kg,而是相对的质量计量单位,只决定物体的惯性;

Drag:空气阻力;

Angular Drag:角阻力,旋转时受的阻力;

Use Gravity:是否受重力影响;

Is Kinematic:是否使用运动学;

Interpolate:插值,内插值,外插值;游戏对象出现抖动时可以尝试使用;

Collision Detection:碰撞检测,离散(默认),连续(高速运动的物体建议使用),连续动态(两个物体都是高速运动的物体);

Constraints:约束,当游戏对象受到力的影响,不会在某个轴上有位移或旋转,冻结位置,冻结旋转;

常用方法:

GetComponent<Rigidbody>().AddForce(move * speed * Time.deltaTime);//参数为三维向量,表示力的大小和方向

  

//给游戏对象添加力矩/扭矩,使物体旋转
GetComponent<Rigidbody>().AddTorque(new Vector3(0,10,0));

  

二、Collider碰撞器

刚体要和碰撞器一起使用

Is Trigger:是否触发;

Material:物理材质;

Center:碰撞检测范围;

发生碰撞的条件:1.两个物体都要有碰撞器,2.至少一个物体带有刚体;

物理材质(Material)

给物体添加摩擦力和弹力,只能添加到带有Collider组件的物体上。

Dynamic Friction:动摩擦力;

Static Friction:静摩擦力;

Bounciness:弹力;

Friction Combine:摩擦力的结合性;(两个物体都有摩擦力时的计算方式)

Bounce Combine:弹力的结核性;

 三、碰撞和触发事件

碰撞相关三个事件

	//碰撞开始时会调用一次
	void OnCollisionEnter(Collision other)
	{
		Debug.Log("碰撞开始");
	}

	//碰撞结束时调用一次
	void OnCollisionExit(Collision other)
	{
		Debug.Log("碰撞结束");
	}
	//碰撞时持续调用
	void OnCollisionStay(Collision other)
	{
		Debug.Log("碰撞持续");
	}

触发相关的三个事件

        //触发器相关的三个事件
	//刚刚进入触发范围
	void OnTriggerEnter(Collider other)
	{
	}

	//持续触发
	void OnTriggerStay(Collider other)
	{
	}

	//触发结束
	void OnTriggerExit(Collider other)
	{
	}    

  

 

posted @ 2017-05-17 16:48  lipper_p  Views(610)  Comments(0Edit  收藏  举报