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内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被 ...
随机推荐
- 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Zhuo' did not find a matching property.
eclipse里面配置tomcat方法:window -- show view -- other -- 找到servers 点击finish 就会出现servers选项卡在选项卡中右键鼠标 new - ...
- 微信小程序配置详解
在之前已经通过微信公众平台的官方网站https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/devtools.html,注册好小程序并且登录成功后(这里主 ...
- 【AWS】亚马逊云常用服务解释
新公司使用的是亚马逊服务,刚开始的时候,对很多名词不太明白,总结了一下如下 1,EC2 这个是亚马逊的一种服务器服务,可以理解为跟vmware差不多,EC2为虚拟机提供载体,EC2上跑虚拟机服务器. ...
- 9patch图片
9patch图片可直接缩放,放在drawable文件夹下就可以 右边和下边指定内容区域
- 20145239 杜文超《Java程序设计》课程总结
<每周读书笔记链接汇总> 第一周读书笔记:http://www.cnblogs.com/dwc929210354/p/5247666.html 第二周读书笔记:http://www.cnb ...
- jsp和servlet的区别联系
jsp和servlet的区别联系 简单的说,SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML ...
- SocketSessionConfig参数设制
Mina 是一个韩国人写的基本java NIO的一个高性能的传输框架,我们的搜索就是基本它作为一个搜索服务开放接口了.对于系统的TIME_WAIT过多,造成服务器的负载过高,这个问题我也不用多说了,这 ...
- MySQL多个条件以什么表当做主条件表_20161111周五
前两天有事情 停了2天 数据需求:1.活动日期11.8-11.10订单2.单笔订单购买A类产品 B类产品满足68元.且连续3天下单的用户ID 首先第一个条件很简单,主要是第二个条件 第二个条件是 且 ...
- BZOJ_5338_ [TJOI2018]xor_可持久化trie
BZOJ_5338_ [TJOI2018]xor_可持久化trie Description 有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑色,并 ...
- ACM学习历程—HDU1028 Ignatius and the Princess(组合数学)
Ignatius and the Princess Description "Well, it seems the first problem is too easy. I w ...