决定写这个系列起因于刚才的偶然所见,我发现当前版本的Unity有一个 Utility 标准资源包,里面有一个 FPSCounter 脚本提供了显示游戏运行帧率的基本功能,而我几周前刚刚写过一个同样功能的脚本。“重复造轮子”的挫折感深深刺激了我,鉴于Unity官方并没有对他们的标准资源做多少介绍性的工作,所以我打算对标准资源中几个比较有用的包做一个简单的研究和介绍,避免自己和其他人浪费不必要的时间和精力。

  Utility包(Unity5.3.4),顾名思义是工具集。

  

  ActivateTrigger:

  

  多功能脚本,由Trigger模式的Collider触发,有Trigger、Replace、Activate、Enable、Animate、Deactivate五种Action属性设置。当Repeat Trigger选中时,每次OnTriggerEnter时都会触发脚本动作;当Repeat Trigger未选中时,每次OnTriggerEnter时Trigger Count减1,当Trigger Count减至0时触发脚本动作。

  Trigger:向Target游戏物体广播“DoActivateTrigger”消息

  Replace:使用Source预设的实例替换Target游戏物体

  Activate:激活Target游戏物体

  Enable:激活Target脚本(不知为何测试未成功)

  Animate:播放Target游戏物体上的动画

  Deactivate:禁用Target游戏物体

  AutoMobileShaderSwitch:

  

  当目标平台为手机平台时,将自身材质上使用的Shader替换为新Shader,可指定多个 Original-Replacement 对。

  AutoMoveAndRotate:

  

  用于控制自身gameObject自动位移和旋转。

  Value:每秒叠加量

  Space:坐标系类型(自身坐标/世界坐标)

  Ignore Timescale:是否按真实时间计算

  CameraRefocus:

  非MonoBehaviour,用于Camera旋转角度的复位。CameraRefocus(Camera camera, Transform parent, Vector3 origCameraPos)方法用于注册摄像机和摄像机父级,GetFocusPoint()方法用于更新摄像机父级的forward方向,SetFocusPoint()方法用于将摄像机旋转至与父级forward方向一致。

  CurveControlledBob:

  非MonoBehaviour,提供以正弦曲线速率晃动摄像机的基本功能。Setup(Camera camera, float bobBaseInterval)方法用于注册摄像机和晃动频率,DoHeadBob(float speed)方法用于获取当前晃动中摄像机应该处于的localPosition(需手动赋值)。

  DragRigidbody:

  无公共属性,故不截图。提供鼠标拖拽刚体的基本功能。

  DynamicShadowSettings:

  

  动态改变实时阴影的脚本,建议挂在主摄像机上,因为它的Height指的是主摄像机距其正下方最近的碰撞面间的距离。

  EventSystemChecker:

  无公共属性,故不截图。Awake阶段检查当前场景中是否存在UGUI的EventSystem,若不存在则自动创建。

  FollowTarget:

  

  使本游戏物体跟随指定的目标游戏物体。

  Target:要跟随的游戏物体

  Offset:本游戏物体与目标游戏物体间的距离(世界坐标)

  ForcedReset:

  无公共属性,故不截图。用于控制游戏复位,当虚拟摇杆“ResetObject”按下时,重新载入活动场景列表中的首个场景。

  FOVKick:

  

  非MonoBehaviour,用于控制摄像机视角变化。

  FOVIncrease:视角改变量

  TimeToIncrease:视角增大的缓动时长

  TimeToDecrease:视角减小的缓动时长

  IncreaseCurve:视角变化时使用的动画曲线

  FPSCounter:

  无公共属性,故不截图。用于显示当前游戏的帧率。Utility/Prefabs 文件夹下有做好的 FramerateCounter 预设体可供使用。

  LerpControlledBob:

  

  非MonoBehaviour,用于获取以线性速率变化的先增后减的数值。DoBobCycle()方法用于启动数值变化,Offset()方法用于获取当前数值。

  BobDuration:数值从0增加到最大所用的时间

  BobAmount:数值的最大值

  ObjectResetter:

  无公共属性,故不截图。提供恢复游戏物体位置和旋转的功能。DelayedReset(float delay)方法用于启动延时恢复,delay秒后将游戏物体恢复至Start阶段的状态。

  ParticleSystemDestroyer:

  

  延时一段时间,然后关闭自身及子游戏物体上的粒子系统,当粒子生命周期结束后销毁本游戏物体。Stop()方法用于提前结束延时。

  MinDuration:延时的最短时间

  MaxDuration:延时的最长时间

  PlatformSpecificContent:

  

  提供针对特定平台启用GameObject和MonoBehaviour的功能,当前平台与BuildTargetGroup不符时禁用GameObject和MonoBehaviour。

  BuildTargetGroup:目标平台,可选Standalone和Mobile

  Content:要启用或禁用的GameObject集合

  MonoBehaviours:要启用或禁用的MonoBehaviour集合

  ChildrenOfThisObject:启用或禁用时是否包含子游戏物体

  SimpleActivatorMenu:

  

  提供循环激活一组游戏物体的功能。NextCamera()方法用于循环激活游戏物体,当一个游戏物体启用时其他游戏物体禁用。

  CamSwitchButton:用于输出当前激活的游戏物体的名称

  Objects:用于循环激活的游戏物体集合

  SimpleMouseRotator:

  

  提供使用鼠标旋转摄像机的功能,挂载于摄像机所在游戏物体上使用。

  RotationRange:横向和纵向的旋转范围

  RotationSpeed:旋转速率

  DampingTime:阻尼时长,摄像机跟随鼠标转动时使用Vector3.SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime)进行平滑阻尼,DampingTime将作为其smoothTime参数传入

  AutoZeroVerticalOnMobile:当目标平台为移动平台时,是否在旋转后自动复位纵向旋转

  AutoZeroHorizontalOnMobile:当目标平台为移动平台时,是否在旋转后自动复位横向旋转

  Relative:选中时读取虚拟摇杆数据,否则读取鼠标数据

  SmoothFollow:

  

  提供有阻尼延时效果的跟随功能。

  Target:本游戏物体跟随的目标游戏物体

  Distance:本游戏物体与目标游戏物体在x-z平面上的距离

  Height:本游戏物体与目标游戏物体在y轴方向上的距离,为负时本物体将位于目标物体下方

  RotationDamping:旋转阻尼

  HeightDamping:高度变化阻尼

  TimedObjectActivator:

  

  多功能脚本,提供延时触发特定操作的功能。

  Activate:延时后启用指定游戏物体

  Deactivate:延时后禁用指定游戏物体

  Destroy:延时后销毁指定游戏物体

  ReloadLevel:延时后载入首个场景

  Call:延时后调用指定方法(未实现,需自己补完)

  TimedObjectDestructor:

  

  延时销毁脚本。

  TimeOut:延时时长

  DetachChildren:选中时销毁本游戏物体前将移出所有子游戏物体

  还有两个脚本WaypointCircuit和WaypointProgressTracker,提供路点功能,因为代码量有点大而且不太常用就不多介绍了。

Unity Standard Assets 简介之 Utility的更多相关文章

  1. Unity Standard Assets 简介之 其他资源

    还有一些其他资源包,要不就是已经有Unity官方的介绍了,要不就是以资源为主没有多少脚本,最后集中说明一下. Effects资源包:包含各种图像特效,Unity官方文档地址 http://docs.u ...

  2. Unity Standard Assets 简介之 Characters

    这篇介绍Characters资源包.包含三个文件夹:FirstPersonCharacter.RollerBall.ThirdPersonCharacter. FirstPersonCharacter ...

  3. Unity Standard Assets 简介之 Vehicles

    这篇介绍载具资源包Vehicles. 主要包含Aircraft(飞行器)和Car(车辆)两部分,两个文件夹里分别有AircraftGuidelines.txt和CarGuidelines.txt对相关 ...

  4. Unity Standard Assets 简介之 CrossPlatformInput

    这篇介绍跨平台输入工具包CrossPlatformInput,主要包括 Prefabs 和 Scripts 两个文件夹: 由于该包中的脚本联系比较紧密,都是配合着去实现特定的功能,没有太大的独立可重用 ...

  5. Unity Standard Assets 简介之 Cameras

    这篇介绍Cameras资源包. 文件夹下有名为“CameraGuidelines.txt”的说明文档,简要介绍了各个预设的作用和用法. Prefabs文件夹: CctvCamera.prefab: 视 ...

  6. Unity Standard Assets 简介之 2D

    这篇介绍2D资源包. 文件夹比较多,但是很多都是prefab的基础资源,所以我们只介绍 Prefabs 和 Scripts 文件夹. Prefabs文件夹: CharacterRobotBoy: 提供 ...

  7. Unity Standard Assets Example Project

    参考链接:http://blog.csdn.net/jaikydota163/article/details/52751976

  8. Unity 3D类结构简介

    趁着周末,再来一发.对于Unity3D,我也是刚开始学习,希望能够与大家多多交流.好了,废话不多说,下面继续. 本篇文章使用C#进行举例和说明.关于Unity 3D编辑器中的各种窗口,网上有很多资料了 ...

  9. Unity 3D入门简介

    最近在刚开始学习Unity 3D,在这里记录一下学习心得和学习笔记,边学边写,可能会比较零散.好了,废话不多说,今天从Unity 3D入门写起,主要简要介绍一下Unity 3D的和一些学习资料.以下如 ...

随机推荐

  1. c语言强制类型转换

    一.强制类型转换 printf("3/2+100.5=%f",3/2+100.5);//100.5错误表达 printf ("    (float)3/(float)2 ...

  2. 继承下public,protected,private访问权限

    C++中派生类对基类成员的访问形式主要有以下两种: 1.内部访问:由派生类中新增成员对基类继承来的成员的访问. 2.对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问.今天给大家介绍在 ...

  3. Mac与iPhone屏幕录制

    1. Mac电脑屏幕录制 1.1 文件->新建屏幕录制   1.2 点击红色按钮   1.3 截取需要录制的屏幕部分,点击开始录制   1.4 点击工具栏的停止按钮,停止录制   1.5 然后会 ...

  4. Spring学习笔记—装配Bean

    在Spring中,对象无需自己负责查找或创建与其关联的其他对象.相反,容器负责把需要相互协作的对象引用赋予各个对象.创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入的本质. ...

  5. Go的基本示例

    有空可以看看, 不知能不能超越JAVA的作法. hello.go package main import "fmt" func main() { s := "hello& ...

  6. HDU2546 饭卡(背包)

    开始写成01背包的形式,求m元可买物品价值的最大值 dp[j] = max(dp[j], dp[j - pri[i]] + pri[i]) 结果为m - dp[m] 但后来发现是有问题的, 比如这组过 ...

  7. [Eclipse] Eclipse is running in a JRE, but a JDK is required

    安装Maven后每次启动出现警告信息: Eclipse is running in a JRE, but a JDK is required Some Maven plugins may not wo ...

  8. 使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:公众号后台系统和数据都基本准备妥当了,可以来分享下我是如何开发本微信公众号的后台系统了 ...

  9. [荐]SWFObject 2最新版语法调用示例

    我一直都在用SWFObject 插入flash,好处多多,代码简洁,不会出现微软的“单击此处以激活控件”的提示(据可靠消息,这个是微软惹的官司,其结果是害苦了用户).不过先前的 调用方法着实有些繁琐, ...

  10. JS 获取元素当前的样式信息

    HTMLElement.prototype.__defineGetter__("currentStyle", function () { return this.ownerDocu ...