AnimationCurve
http://blog.sina.com.cn/s/blog_471132920101f8nv.html
说明:
关于animationCurve的使用总结
1 创建,可以新建脚本,创建animationCurve变量,然后直接在脚本上手动拖动可视化创建曲线,也可以用代码创建(这种比较不直观)
2 使用,anim.Evaluate(Time.time)
3 存储,编辑器手动创建曲线,然后代码中读取各项key数据,二进制保存起来,用的时候再读取
原创文章如需转载请注明:转载自风宇冲Unity3D教程学院
using UnityEngine;
using System.Collections;
public class AnimationCurveTutor : MonoBehaviour {
public AnimationCurve anim;
}
双击任意区域内地方,创建关键点。对关键点点鼠标邮件,则出如下界面.
using UnityEngine;
using System.Collections; public class AnimationCurveTutor : MonoBehaviour {
public AnimationCurve anim;
public void Update()
{
transform.position = new Vector3(Time.time, anim.Evaluate(Time.time), 0);
}
}
一:键序列
创建键序列:Keyframe[] ks = new Keyframe[3];
曲线中加入键序列:AnimationCurve curve = new AnimationCurve(ks);
获取曲线中的键序列:curve[index] 或者 curve.keys[index]
添加单键:curve.Addkey(time,value)
anim.postWrapMode = WrapMode.Once;
三:键
Keyframe kf = new Keyframe(time,value);
kf.inTangent = 45;
kf.outTangent = 45;
using UnityEngine;
using System.Collections; public class CreateRuntime : MonoBehaviour {
public AnimationCurve anim = new AnimationCurve();
void Start() {
Keyframe[] ks = new Keyframe[3];
ks[0] = new Keyframe(0, 0);
ks[0].inTangent = 0;
ks[1] = new Keyframe(4, 0);
ks[1].inTangent = 45;
ks[2] = new Keyframe(8, 0);
ks[2].inTangent = 90;
anim = new AnimationCurve(ks);
}
void Update() {
transform.position = new Vector3(Time.time, anim.Evaluate(Time.time), 0);
}
}
using UnityEngine;
using System.Collections;
using UnityEditor; public class EditorCurves :EditorWindow {
AnimationCurve curveX = AnimationCurve.Linear(0,0,10,10);
[MenuItem("Examples/Mine")]
static void Init()
{
EditorWindow window = GetWindow(typeof(EditorCurves));
window.position = new Rect(0,300,200,100);
window.Show();
}
void OnGUI()
{
curveX = EditorGUI.CurveField(new Rect(3,3,position.width-6,15), "Animation on X", curveX);
if(GUI.Button(new Rect(3,60,position.width-6,30),"Generate Curve"))
AddCurveToSelectedGameObject();
}
void AddCurveToSelectedGameObject()
{
if(Selection.activeGameObject) {
FollowAnimationCurveMine comp = Selection.activeGameObject.AddComponent<FollowAnimationCurveMine>();
comp.SetCurves(curveX);
} else {
Debug.LogError("No Game Object selected for adding an animation curve");
}
}
}using UnityEngine;
using System.Collections; public class FollowAnimationCurveMine : MonoBehaviour {
public AnimationCurve curveX;
public void SetCurves(AnimationCurve tmpCurve)
{
curveX = tmpCurve;
}
void Update () {
if(curveX != null)
transform.position = new Vector3(1f*Time.time, curveX.Evaluate(Time.time) * 0.3f,0);
}
}
AnimationCurve的更多相关文章
- Unity利用AnimationCurve做物体的各种运动
之前一直都是自己学习Unity各种做Demo,最近开始正式使用Unity来做一个款2d的游戏. 其中在做一个类似小球弹跳运动的时候遇到了点问题,查找了很多资料,无意间发现AnimationCurve ...
- Unity的AnimationCurve
转自:风宇冲Unity3D教程学院http://blog.sina.com.cn/s/blog_471132920101f8nv.html,本文有多处增删减改,详细内容请查看原文. 1.介绍 Anim ...
- iOS 系统数字键盘左下角加确定按钮
首先在 viewWillAppear 方法中注册监听相应的键盘通知,并且要在 viewWillDisappear 方法中注销通知- (void)viewWillAppear:(BOOL)animate ...
- 使用javascript生成的植物显示过程特效
查看效果:http://keleyi.com/keleyi/phtml/html5/33.htm .NET版本:http://keleyi.com/a/bjac/66mql4bc.htm 完整HTML ...
- iOS8.3发布了Swift 1.2带来哪些新变化
苹果前几日在面向开发者推送iOS 8.3 Beta的同时,还发布了版本号为6D520o的Xcode 6.3 Beta,其中便包含了iOS 8.3 Beta和OS X v10.10 SDK,并进一步提升 ...
- 使用 Sublime Text 2 开发 Unity3D 项目
用 Sublime 已经有很长一段时间,很舒适,很贴心,根本停不下来.之前因为是开发页游,所以是用 AS3 开发,近段时间,新开了个手游项目,引擎方面选定了 Unity3D,老实说,之前没有太多的 3 ...
- Unity3D 第一人称控制器 C#脚本
CharacterMotor.cs using UnityEngine; using System.Collections; /** * @Author : www.xuanyusong.com */ ...
- 转一篇Unity的相机动画控制
最近真是忙,连研究细看的时间都没有了,原帖地址:https://alastaira.wordpress.com/2013/11/08/smooth-unity-camera-transitions-w ...
- [转]unity3d 脚本参考-技术文档
unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被 ...
随机推荐
- drawable canvas使用
/** * Drawable 就是一个可画的对象, * 其可能是一张位图(BitmapDrawable), * 也可能是一个图形(ShapeDrawable), * 还有可能是一个图层(LayerDr ...
- eslint 配合 git (husky)
为了保证每次提交的 git 代码是正确的,为此我们可以使用 eslint 配合 git hook, 在进行git commit 的时候验证eslint规范 如果 eslint 验证不通过,则不能提交. ...
- http://blog.csdn.net/renfufei/article/details/37725057/
版权声明:本文为博主原创文章,未经博主允许不得转载. 原创:http://blog.csdn.net/renfufei/article/details/37725057/ 说明: 首先,你需要注册一个 ...
- VS调试的问题
调试Vs,使用本地IIS也不行,使用外部服务器也不行,最后运行VS2013以管理员身份就可以了
- HDU 3853 LOOPS:期望dp【网格型】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3853 题意: 有一个n*m的网格. 给出在每个格子时:留在原地.向右走一格,向下走一格的概率. 每走一 ...
- ubuntn下 apt的用法和yum的比较(转)
centos有yum安装软件,Ubuntu有apt工具. apt简单的来说,就是给Ubuntu安装软件的一种命令方式. 一.apt的相关文件 /etc/apt/sources.list 设置软件包的获 ...
- Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ]
Yii2使用Redis - 从安装redis到使用 [ 2.0 版本 ] 一.安装Redis和简单配置 1. 下载Redis安装包 地址:http://redis.io/download , 本文选择 ...
- asterisk ss7 ${CALLERID(rdnis)}变量为空问题
asterisk 1.8.16+chan_ss7 version 2.1.1b ${CALLERID(rdnis)}变量取不到信息问题,解决 编辑 funcs/func_callerid.c chan ...
- 查询oracle 数据库 SQL语句执行情况
1.查看总消耗时间最多的前10条SQL语句 select * from (select v.sql_id, v.child_number, v.sql_text, v.elapsed_time ...
- bzoj3456城市规划 多项式取模
題目大意 求出有n个点的有标号简单连通无向图的数目. 题解 什么破玩意,直接输出\(2^{C_n^2}\)走人 我们发现这张图要求连通,而上式肯定不能保证连通. 其实上式表示的是不保证连通的有标号简单 ...