2018-04-03 14:43:56 wxblzzz 阅读数 130
  • Unity3D物理系统实战入门

    本课程深入浅出的介绍Unity3D物理引擎系统的概念,向初学者展示Unity3D物理引擎常见的编程思路和使用方式,与此同时,引领学习者逐步完成一款经典的关卡类物理引擎小游戏《Marble Drop》,详细展示如何根据项目的实际需求搭建简单而准确的物理组件和模块,对之前的理论知识进一步巩固和熟习。

    572 人正在学习 去看看 伍晓波
Unity3D的物理系统实战入门—160人已学习
课程介绍    
201804022228467764.jpg
    本课程深入浅出的介绍Unity3D物理引擎系统的概念,向初学者展示Unity3D物理引擎常见的编程思路和使用方式,与此同时,引领学习者逐步完成一款经典的关卡类物理引擎小游戏《Marble Drop》,详细展示如何根据项目的实际需求搭建简单而准确的物理组件和模块,对之前的理论知识进一步巩固和熟习。
课程收益
    很多同学对Unity3D的物理引擎系统缺乏详细了解,对其中基础知识点的理解模棱两可、似是而非,遇到具体问题往往会纠结头疼,最终实现效果和预期效果大相径庭。本课程从零开始,对基础知识点详加阐述,对初学者的常见问题进行针对性讲解,对Unity3D物理引擎系统的初学者会有切实的帮助和提升。
讲师介绍
    伍晓波更多讲师课程
    6年程序开发经验,精通C/C++/C#编程。 曾担任过Unity3d游戏开发主程和Unity3d游戏开发讲师,熟悉Unity3d的UI系统、物理引擎、动画系统、粒子系统等,对小型、中型游戏有丰富的项目经验,益智类、敏捷类、塔防、RPG均有广泛涉猎。
课程大纲
  第1章:课程概述
    1.课程概述  17:04
  第2章:关卡界面的UI布局和资源导入(UI层和非UI层游戏物体的渲染遮挡关系)
    1.关卡界面的UI布局和资源导入(UI层和非UI层游戏物体的渲染遮挡关系)  24:28
  第3章:EventTrigger事件添加、预置的生成及鼠标跟随
    1.EventTrigger事件添加、预置的生成及鼠标跟随  24:42
  第4章:使用3D射线检测鼠标与入口斜线区的位置关系
    1.使用3D射线检测鼠标与入口斜线区的位置关系  29:45
  第5章:使用2D射线检测鼠标与入口斜线区的位置关系
    1.使用2D射线检测鼠标与入口斜线区的位置关系  16:43
  第6章:刚体组件(Rigidbody)的基本属性和设置方法
    1.刚体组件(Rigidbody)的基本属性和设置方法  28:07
  第7章:物理碰撞的检测条件及轨道路径碰撞体(Collider2D)的添加
    1.物理碰撞的检测条件及轨道路径碰撞体(Collider2D)的添加  37:54
  第8章:物理碰撞的过程及每阶段的回调函数
    1.物理碰撞的过程及每阶段的回调函数  33:19
  第9章:边碰撞器(EdgeCollider2D)和多边形碰撞器(PolygonCollider2D)的区别
    1.边碰撞器(EdgeCollider2D)和多边形碰撞器(PolygonCollider2D)的区别  15:26
  第10章:关卡胜利与失败的状态判定和转换
    1.关卡胜利与失败的状态判定和转换  28:16
  第11章:使用UGUI实现失败界面的功能
    1.使用UGUI实现失败界面的功能  16:47
  第12章:使用UGUI实现胜利界面的功能(一)
    1.使用UGUI实现胜利界面的功能(一)  28:01
  第13章:使用UGUI实现胜利界面的功能(二)
    1.使用UGUI实现胜利界面的功能(二)  18:14
  第14章:使用碰撞触发器实现游戏新道具——开关
    1.使用碰撞触发器实现游戏新道具——开关  20:39
  第15章:使用碰撞体和触发器实现篮子堆叠功能
    1.使用碰撞体和触发器实现篮子堆叠功能  21:02
  第16章:使用碰撞体和触发器实现游戏新道具——翻斗
    1.使用碰撞体和触发器实现游戏新道具——翻斗  26:27
  第17章:使用碰撞体和触发器实现游戏新道具——染色器和颜色混合器
    1.使用碰撞体和触发器实现游戏新道具——染色器和颜色混合器  30:10
  第18章:使用碰撞体和触发器实现游戏新道具——加速瓶
    1.使用碰撞体和触发器实现游戏新道具——加速瓶  24:02
  第19章:刚体施加外力的方式、类型及不同效果
    1.刚体施加外力的方式、类型及不同效果  28:15
  第20章:总结
    1.总结  12:23
大家可以点击【查看详情】查看我的课程
2015-02-02 10:26:22 book_longssl 阅读数 3730
  • Unity3D物理系统实战入门

    本课程深入浅出的介绍Unity3D物理引擎系统的概念,向初学者展示Unity3D物理引擎常见的编程思路和使用方式,与此同时,引领学习者逐步完成一款经典的关卡类物理引擎小游戏《Marble Drop》,详细展示如何根据项目的实际需求搭建简单而准确的物理组件和模块,对之前的理论知识进一步巩固和熟习。

    572 人正在学习 去看看 伍晓波


简介
       物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有两个立方体对象,一个在空中,一个在地面上,在空中的立方体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理引擎就是用来模拟真实碰撞的效果。

       如果需要让模型感应物理引擎的效果,需要将刚体组件或角色控制器组件添加至该对象中。

刚体(Rigidbody)
       刚体是一个非常重要的组件,新创建的物体默认情况下是不具有物理效果的,而刚体组件可以给物体添加一些常见的物理属性,比如物体质量、摩擦力和碰撞参数等,这些属性可用来真实的模拟该物体在3D游戏世界中的一切行为。

     下面我们在unity中创建一个plane(平面),两个cube(立方体),蓝色cube默认状态是没有rigidbody,给红色cube添加刚体组件,选择要添加刚体的对象,通过 “Component—>Physics—>Rigidbody”或者在Inspector窗口,选择“AddComponent—>Physics—>Rigidbody ”




运行后可以发现,添加了刚体的红色cube感应到了物理效应,会从空中落下。而蓝色cube依然是静止不动的




  可以看到Inspector可以看到Rigidbody包含的属性,简单的看下几个属性的含义,详细的可以看手册





   力是物理学中一个非常重要的元素,其种类有很多,刚体组件可以受力的作用,比如给刚体施加一个X轴方向的力,那么该刚体绑定的物体将沿X轴方向向前移动,这就好比用力将物体仍出去一样,该物体会以抛物线的形式移动,而不是呆板的做匀速平移 。

力的方式有两种

     1:普通力,通过设定里的方向和大小,相当于把力施加在物体的重心上。
     2:位置力,需要设定目标点的位置,该物体就朝向这个目标位置施加力。

AddForce和AddForceAtPosition
还是拿之前的那个列子做演示。在Hierarchy视图中创建两个Sphere,红色的添加普通力,白色的添加位置力
红色Cube当作位置力的目标对象。即向该位置发射一个位置力

1:创建脚本。定义三个变量:
    public GameObject whiteSph; 
 //白色球体 施加普通力的对象
    public GameObject redSph; 
 //红色球体 施加目标位置力的对象
    public GameObject targetPos;
 //目标对象


2:GUI绘制两个Button,分别控制“普通力”和“位置力”逻辑代码

void OnGUI()    { 

         if (GUILayout.Button("普通力"))   {
              redSph.rigidbody.AddForce(0,1000,0); 
     //Y轴上力的大小为1000。即向上         
   }
   if (GUILayout.Button("位置力")) {           
     //算出whiteSph到targetPos的目标向量            
     Vector3 c = targetPos.transform.position - whiteSph.transform.position;             
     //在c位置施加一个位置力,targetPos将会向这个位置移动
     whiteSph.rigidbody.AddForceAtPosition(c, targetPos.transform.position, ForceMode.Impulse);         
   }    
}


3:脚本挂载到Camera上。给变量拖拽赋值。运行看效果.


  运行游戏,刚体会受物理效应会往下落

  1:当单击普通力。红色球体会往天空弹起,因为它有刚体。最终还是外往下落。
  2:当单击位置力。白色球体会朝着红色方块位置添加力。最终移动到这个位置。
  3:当改变红色cube坐标后。目标位置也跟着移动。

  说了这么多。那AddForce和AddForceAtPosition到底有什么区别呢?我也是跟着学。跟着看手册,也许只有等以后知道了它运用在什么逻辑代码中。就自然而然了解了。

手册上的解释:

1: 添加一个力到刚体。作为结果刚体将开始移动。
2:在position位置应用force力。作为结果这个将在这个物体上应用一个力矩和力。

力矩?是什么。这个我也犯迷糊。不过在手册手看到这样一个函数。AddTorque:添加一个力矩到刚体。作为结果刚体将绕着torque轴旋转。
手册上函数有很多。有兴趣的可以自己去测试,等下把手册给大家。我也是网上下载的。


碰撞与休眠
   刚体与物体之间是存在碰撞的,一旦刚体开始移动,就可以在系统方法中监听刚体的碰撞状态,碰撞分为三种:

   1:进入碰撞
   2:碰撞中
   3:碰撞结束

我们通过一张图片来了解



碰撞器
  游戏对象如果需要感应碰撞,那么必须给其添加碰撞器,默认情况下,创建游戏对象时,会自动将碰撞器添加到其中。
  unity一共为对象提供了6种碰撞器
  1:Box Collider         盒子碰撞器
  2:Sphere Collider     球体碰撞器
  3:Capsule Collider    胶囊碰撞器
  4:Mesh Collider        网格碰撞器
  5:Wheel Collider      车轮碰撞器
  6:Terrain Collider     地形碰撞器



在碰撞器之间可以添加物理材质,用于设定物理碰撞后的效果,它将将开始
相互反弹,反弹的力度是有物理材质决定的。




unity标准资源包中提供了一些物理材质的资源,我们可以导入到当前工程中





导入成功后:


好。我们可以看出之前的游戏中,球体下落是立即禁止的。
现在给之前的Plane添加弹性材质,运行游戏



可以看到刚体在弹性材质的作用下。会反弹

碰撞检测
1:两个游戏对象必须有Collider
2:对于双方都要检测的物体,至少其中一个必须是刚体。
3:如果刚体是运动的,那么在双方都没有设置碰撞体的 Is Trigger属性的时候,
     双方都可以通过OnCollisionEnter函数检测碰撞
4:如果至少一个碰撞体Is Trigger被设置,那么双方可以通过OnTriggerEnter检测碰撞





2013-03-25 13:13:00 xiawei308307786 阅读数 2325
  • Unity3D物理系统实战入门

    本课程深入浅出的介绍Unity3D物理引擎系统的概念,向初学者展示Unity3D物理引擎常见的编程思路和使用方式,与此同时,引领学习者逐步完成一款经典的关卡类物理引擎小游戏《Marble Drop》,详细展示如何根据项目的实际需求搭建简单而准确的物理组件和模块,对之前的理论知识进一步巩固和熟习。

    572 人正在学习 去看看 伍晓波

unity3d导入天空盒:

第一步:导入包,导入skybox的相关资源:如图:


添加天空盒有两种方式:第一种是给场景添加:如下图:


然后选择天空盒

第二种事给摄像机加:


然后选择天空盒


以上就是unity3d添加天空盒的方法

2013-01-21 14:53:57 jeksonal 阅读数 16699
  • Unity3D物理系统实战入门

    本课程深入浅出的介绍Unity3D物理引擎系统的概念,向初学者展示Unity3D物理引擎常见的编程思路和使用方式,与此同时,引领学习者逐步完成一款经典的关卡类物理引擎小游戏《Marble Drop》,详细展示如何根据项目的实际需求搭建简单而准确的物理组件和模块,对之前的理论知识进一步巩固和熟习。

    572 人正在学习 去看看 伍晓波

unity3D 用3DMax 做的模型时需要注意几点

1:方向问题
2:模型尺寸问题

3:模型所占资源大小问题

 

3DMax 做的东西导入到 Unity3D 中,在 Unity3D 引擎中 X 会被反向旋转 90 度();个人处理方式是建模时先将模型 X 轴旋转 90;再调节模型;

3DMax 做的东西导入到 Unity3D 中,由于 3DMax 默认的单位处理机制与 Unity3D 不一样,而导致显示过小的问题;所以,在制作模型前先调节好 3DMax 中的系统单位设置

具体操作:

 菜单栏: 选择 “自定义”  ,

再选择 “单位设置”-- >

 接着点选 “系统单位设置 ”  --->   将系统单位比例设置成:  ;再点击 “ 确定” 保存!

在模型的制作过程当中,为了使物体的坐标在物体的中心点,要记得冻结物体的坐标属性

当模型制作完成时,导出为 FBX 格式时还需注意:

在导出的 设置面板中 :

点击高级选项,然后出现:

确保 “ 场景单位转化为:”的设置为 "Meters"


模型导出后,模型资源可能很大,原因有以下几个:

1: 检测一下材质贴图的格式是否为:.png 的,不是请改过来 ;

2:看模型当中是否有过多的独立存在的物体,将不需要单独 存在给它合并在一块!


要是模型导入到Unity3D 中后,引擎运行变卡,就得看看模型的面是不是太多了!


2018-11-18 19:28:47 u011607490 阅读数 1209
  • Unity3D物理系统实战入门

    本课程深入浅出的介绍Unity3D物理引擎系统的概念,向初学者展示Unity3D物理引擎常见的编程思路和使用方式,与此同时,引领学习者逐步完成一款经典的关卡类物理引擎小游戏《Marble Drop》,详细展示如何根据项目的实际需求搭建简单而准确的物理组件和模块,对之前的理论知识进一步巩固和熟习。

    572 人正在学习 去看看 伍晓波

节点添加Rigidbody后,即拥有物理的身体(刚体),接受重力影响,但是还没有形状,所以不能碰撞。

添加了collider碰撞组件后才拥有物理形状,开始接受空间刚体碰撞。

 

然后设置静态刚体、例如地面就是静态刚体

is kinematic表示是否可以运动

 

Unity3D UGUI 代码添加 点击事件

博文 来自: nicepainkiller
没有更多推荐了,返回首页