刚体Rigibody && 碰撞器Collider

在游戏中使用物理引擎可以真实的模拟出现实世界中的一些物理效果,例如重力,摩擦力,碰撞等,在Unity中使用的是 NVIDIA 的PhysX物理引擎,该引擎可以在3D世界中模拟需要的效果,它渲染的游戏画面非常的逼真,可以给玩家身临其境的感觉。
在Unity中需要使一个物体受到物理引擎的控制,主要是通过刚体组件来实现的


刚体组件的属性

这里写图片描述

这里写图片描述

刚体组件常用属性

这里写图片描述

这里写图片描述

刚体组件常用方法

这里写图片描述


代码实例

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {

    private Rigidbody r;

    void Start ()
    {
        //Rigidbody rb = GetComponent<Rigidbody>();
        //// 获取物体刚体上的属性
        //float mass = rb.mass;   // 质量
        //float drag = rb.drag;   // 空气阻力
        //rb.angularDrag;          // 角阻力
        //rb.useGravity;          //当前游戏对象是否受到重力影响
        //rb.isKinematic;         //是否使用动力学
        //rb.freezeRotation;      // 是否冻结游戏对象的旋转
        r = GetComponent<Rigidbody>();
    }

    void Update ()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            // 给当前游戏对象施加一个力
            //r.AddForce(new Vector3(0f, 10f, 0f));

            // 给当前游戏对象施加力矩/扭矩,扭矩可以使物体旋转
            //r.AddTorque(new Vector3(0f, 10f, 0f));

            // 给游戏对象在指定的位置上添加一个力
            //r.AddForceAtPosition(new Vector3(0f, 10f, 0f), new Vector3(0.5f, 0.5f, 0.5f));

            // 在指定的位置添加一个爆炸力
            r.AddExplosionForce(1500f, Vector3.zero, 4f);
        }
    }
}

Collider 碰撞器

碰撞发生的条件:

  1. 发生碰撞的两个物体都必须带有Collider
  2. 发生碰撞的两个物体至少有一个带有刚体
  3. 发生碰撞的两个物体必须有相对的运动

这里写图片描述

这里写图片描述


**

在Unity中,如果我们给一个物体设置了static,同时这个物体有Collider但是没有Rigibody,那么游戏运行后Unity认为这个物体是不可动的,此时如果我们通过代码让它动了,所有的跟这个物体一样属性的物体;系统都要重新计算位置,这样对系统的消耗很不利的,所以不建议给此类对象设置移动

**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值