项目剧情模块分给了我做,其中很重要的一个功能就是摄像机旋转平移等操作,本来打算使用Camera Path这个插件制作的,但是鉴于项目Unity版本还停留在4.3,低于插件要求版本,另外编辑器做出来是交由策划进行编辑的,而他们的权限只能看到场景,代码部分很少,因此只能寻求另外的解决方案。

  选择Animation组件实现功能有两点好处:

  1.Animation是Unity自带组件,不需要任何其他代码支持,方便策划编辑。

  2.直观,所见即所得,操作较为简单,功能强大。

  实现过程中需要注意三个方面。首先,需要在摄像机挂在一个Animation组件,用于播放摄像机动画。

  其次,需要教给策划如何去创建编辑一个动画文件。打开Animation窗口,选中摄像机,新建一个Animation文件,左侧是组件列表,通常只会用到Postion和Rotation两种,红线表示当前选中的帧,可以看到摄像机此时Position参数和Rotation参数,在场景中拖动摄像机编辑每一帧摄像机的状态,记录于每个帧。右侧横轴表示动画时间轴,图中的单位是秒,滑动滑轮可以进行缩放,两个帧点之间的距离与动画速度成反比。

  最后,完成一个动画的编辑后需要修改动画文件Type,选中文件,将Inspector窗口改为Debug模式,修改Animation Type参数2为1。这个问题主要是由于新的Mecanim动画系统出现后,动画文件默认的类型会被改为适合Animator的Type,这里需要将之修改回来,否则会报The AnimationClip 'xxx' used by the Animation component 'xxx' must be marked as Legacy.错误。完成这些后将动画文件挂载于Prefab上,打包成AssetBundles,在游戏中加载完成根据需要将Animation挂载于摄像机播放,摄像机动画即会呈现出来。

  其实并不推荐大家使用以上解决方案,如果版本支持,使用上文中提到的Camera Path插件是个非常不错的选择,插件是使用新版动画Animator来实现的。经过几个版本的完善,新版Mecanim动画已经比较可靠了,功能强大、所见即所得。这里分享出来主要是因为项目版本较低,记录一下这个自创的山寨解决方案。

使用Animation实现摄像机动画的更多相关文章

  1. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  2. 3DS MAX调慢摄像机动画

    在3ds max的右下角找到时间配置,然后出现该对话框,然后调整结束时间,将原来的时间翻倍,就能够是摄像机动画变慢. 下图的旋转速度比上图慢一半.

  3. Android动画主要包含补间动画(Tween)View Animation、帧动画(Frame)Drawable Animation、以及属性动画Property Animation

    程序运行效果图: Android动画主要包含补间动画(Tween)View Animation.帧动画(Frame)Drawable Animation.以及属性动画Property Animatio ...

  4. jQuery Animation实现CSS3动画

    jQuery Animation的工作原理是通过将元素的CSS样式从一个状态改变为另一个状态.CSS属性值是逐渐改变的,这样就可以创建动画效果.只有数字值可创建动画(比如 "margin:3 ...

  5. 基于animation.css实现动画旋转特效

    分享一款基于animation.css实现动画旋转特效.这是一款基于CSS3实现的酷炫的动画旋转特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class ...

  6. 示例:WPF中自定义StoryBoarService在代码中封装StoryBoard、Animation用于简化动画编写

    原文:示例:WPF中自定义StoryBoarService在代码中封装StoryBoard.Animation用于简化动画编写 一.目的:通过对StoryBoard和Animation的封装来简化动画 ...

  7. Unity Animation System(动画系统)

    动画系统: 支持:动画融合,混合,叠加动画,行走循环的时间同步,动画层,控制动画的各个方面(时间,速度,融合权重)   带有每顶点1.2或4骨骼的蒙皮网格,以及支持基于物理的布娃娃系统和程序动画.   ...

  8. SVG Drawing Animation - SVG 绘制动画

    一个小实验,探索 SVG 线图动画的使用情况,以前沿的展示形式呈现图形或网站元素的外观,模拟它们的加载.SVG 真的很强大,有许多创造性和可能性,使用 SVG 可以制作各种有趣的网站交互效果.今天这篇 ...

  9. Unity3D研究院之使用Animation编辑器编辑动画(五十四)

     Unity提供了Animation编辑器,它可以为我们编辑物理动画.举个例子比如场景中有一个来回摇动的秋千,这个秋千在项目中完全只起到衬托作用,它不会与别的游戏对象有任何交互.如果这个秋千也用代码来 ...

随机推荐

  1. JS 数组去重!!!

    var arr = [1,2,3,1,1,1,3,5,3,6,2]; var newArr=[]; for(var i = 0; i < arr.length-1; i++){ var onOf ...

  2. JS中 window的用法

    1.window.location.reload();作用是刷新当前页面

  3. TCP同步传送数据示例以及可能出现问题分析

    TCP传送数据可以分为同步传送和异步传送,首先这里使用了TCP的同步传送方式,学习了TCP同步传送数据的原理. 同步工作方式是指利用TCP编写的程序执行到监听或者接受数据语句的时候,在未完成当前工作( ...

  4. (转) Tomcat部署Web应用方法总结

    原文:http://blog.csdn.net/yangxueyong/article/details/6130065 Tomcat部署Web应用方法总结 分类: Java web2011-01-11 ...

  5. HttpClient -- 血的教训

    HttpClient -- 血的教训 千万别用httpClient 不支持httpVersion2.0 因为这个导致项目重做

  6. Emacs常用命令

    1.离开Emacs 挂起Emacs C-z 退出Emacs C-x C-c 2.文件 打开文件 C-x C-f 保存文件 C-x C-s 保存所有的文件 C-x s 将一个文件的内容插入到当前buff ...

  7. ios oc ui 路径和颜色设置--崩溃解决方案

    - (id)init{ self = [super init]; if (self) { _lineColor = CGColorCreateCopy([UIColor whiteColor].CGC ...

  8. hdu 3635

    http://acm.hdu.edu.cn/showproblem.php?pid=3635 1-n个城市,对应放着编号1-n的龙珠. 两种操作 T A B 把编号A的龙珠所在城市内的全部龙珠放到有编 ...

  9. 【转】Fiddler 教程

    原文转自:http://www.cnblogs.com/tankxiao/archive/2012/02/06/2337728.html Fiddler是最强大最好用的Web调试工具之一,它能记录所有 ...

  10. Handler 引起的内存泄露

    先看一组简单的代码 1 2 3 4 5 6 7 8 9 public class SampleActivity extends Activity { private final Handler mHa ...