• 003-unity3d 物理引擎简介以及示例


    一、概述

      物理引擎就是模拟真实世界中物体碰撞、跌落等反应的引擎,通过ballence、愤怒的小鸟等理解。Unity3D的物理引擎使用的是Nvidia的PhysX。

      物理引擎是一个计算机程序模拟牛顿力学模型,使用质量、速度、摩擦力和空气阻力等变量。可以用来预测这种不同情况下的效果。它主要用在计算物理学和电子游戏以及电脑动画当中。

      物理引擎有两种类型常见的型类:实时物理引擎和高精度物理引擎。高精度的物理引擎需要更多的处理能力来计算非常精确的物理,通常使用在科学研究(计算物理学)和电脑动画电影制作。实时物理引擎使用通常使用在电子游戏并且简化运算,降低精确度增以减少计算时间,得到在电子游戏当中可以接受的的处理速度。

    二、示例

      选一个游戏对象,主菜单→Component→Physics→Rigidbody,这样就添加了刚体组件,一旦给一个GameObject添加刚体组件,他就会受重力、碰撞等的反应,最典型的就是“脚下无地”就会坠落、和其他刚体碰撞会反弹,无法进入等。地面用Plane,加光照会更好。

      开发步骤:

      1、创建项目,打开软件,

        

        

      默认如下,

        

      也可以手工新增加一个新的 Sence,

        

      2、创建球体,点击上图create ,创建 3d object→Sphere.配置其坐标x:0 y:5 z:0

      3、设置球体为刚体,选中sphere,在Component上选择Physics→Rigidbody,此时在Inspector,中可以看到

        

        设置Drag 为1

        具体含义可看第一讲安装的文档

        

      4、设置球体材质

      

      只导入必要的包

      

      将材质属性,拖拽至球体上即可

      5、添加地面

        在create→Plane即可,点击工具栏运行即可看到效果。

      6、添加脚本

        

        

      7、脚本内容编写

        设置脚本打开方式:edit→perferences→External Tool→选择开发脚本工具即可

        脚本默认有两个方法

        Start 对象初始化

        Update:每一帧调用时候执行

        在Update增加以下内容 

    if (Input.GetMouseButtonDown(0))
            {
                this.gameObject.GetComponent<Rigidbody>().AddForce(Vector3.forward, ForceMode.Impulse);
            }

      将脚本拖拽至具体游戏推向即可,同一个脚本可以给多个游戏对象。    

      运行测试点击鼠标查看效果。

  • 相关阅读:
    Android之Margin和Padding属性及支持的长度单位
    java jvm eclipse 性能调优
    spring aop 内部方法调用事务不生效问题解决
    服务器 获取用户 真实ip
    Nginx gzip配置
    全局唯一的支付和订单id生成算法
    spring aop 方法增加日志记录
    linux cp复制文件 直接覆盖
    Twitter分布式自增ID算法snowflake原理解析
    nginx 命令
  • 原文地址:https://www.cnblogs.com/bjlhx/p/8213836.html
Copyright © 2020-2023  润新知