zoukankan      html  css  js  c++  java
  • 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)
    	{
    	}    
    

      

  • 相关阅读:
    SqlServer中插入无时间的日期
    IEnumerable的扩展方法
    JQuery插件之Autocomplete
    Visual Studio2010 即时生成序列图
    SQLSERVER系统表应用之基于Table生成存储过程参数列表
    格式化代码之自动加Region
    SQLSERVER2008使用CTE转换string到Table
    SQLSERVER使用CLR Stored Procedure导出数据到Excel
    SQLSERVER中找出拙劣的约束,索引,外键
    SQLSERVER2008中CTE的Split与CLR的性能比较
  • 原文地址:https://www.cnblogs.com/leeplogs/p/6868332.html
Copyright © 2011-2022 走看看