在unity的制作过程中,怎么让一个物体按照我想要的方式懂起来。一般有两种方式,
1:用代码控制。就像第二节中最后写的那段代码一样。我们按W、A、S、D、物体做前后左右运动。(http://www.narkii.com/club/bbs_273109.shtml)当然一些简单的运动这样是可以完成的。但是一些复杂的运动只用代码来编辑就会非常非常麻烦了,比如你个人往前奔跑或者打斗。这样我们就需要动画来完成了。
2:用代码和动画想结合的方式。我们首先就来一下在unity中的动画是怎么制作和添加到物体上的.然后再了解一下怎么又代码来控制他的播放.
unity中的动画一般有两种方式的到,(1)用unity提供的动画系统制作动画(2)在3维软件中制作动画,然后导入到unity中。
我们先来看第一种方式:首先,我们在unity中创建一个物体,给它加上材质,如图:
点击工具栏中的Window->Animation
如图:
弹出如下对话框,我们下面的工作主要在这里面完成了
1:为层级视图中选择的游戏对象。
2:为被选择的游戏对象的动画属性的列表。在这个列表上排列着所有关联到这个游戏对象的组件(Components)和材质(Materials)。
3:为时间轴。
下面我们开始创建一个新的动画剪辑
点击4的位置
点击【Create New Clip】.
填写动画片段名称,我们命名为Clip1.
我们发现在Inspector视图中多出一列Animation组件
然后点击Positoin后面的下拉按钮选择Add Curves(添加动画曲线)
得到如图所示结果:
我们现在想做的动画是让它沿着X轴的正方向进行移动。
首先我们选择Position.x.在时间轴上选择一个时间点我们选择(0:40.0)然后在两条线的相交处,单击右键
点击Add Key添加关键帧。然后选择关键帧向上拖动。
或者改变动画视图中Position.x的值,也可以调整Inspector视图或者scene视图中x的值
我们将Position.x的值改为1.
然后点击播放按钮,在Game是图中看下效果如何。
我们发现在Game视图中。动画播放一次就停止了。要想让他连续播放。我们现在Project视图中找到我们制作的Clip1选中它。然后在Inspector视图中点击Wrap Mode后的下拉菜单。选择Loop,这样就可以循环播放了。
这样一个动画就制作完成了。当然你自己也可以试一下其他组件的动画。都非常有意思的。
下面我们来看下怎么来控制这个动画的播放可停止。
我们通过一个简单的案例来介绍一下。
我们先建两个按钮一个开始,一个停止。点击开始按钮是动画开始播放,点击停止时停止播放。
首先第一步我们要把物体Animation组件下的Play Automatcally选框勾掉。不要让他开始就播放。
然后我们新建一个JS脚本,命名为(Clip One)
编辑代码如下:
function OnGUI()
{
//创建第一个按钮“开始”
if (GUI.Button(Rect(10,70,50,30),"开始"))
{
//当按钮点击时播放动画
animation.Play("Clip1");
}
//创建第二个按钮“停止”
if (GUI.Button(Rect(70,70,50,30),"停止"))
{
//当按钮点击时停止动画
animation.Stop("Clip1");
}
}
将脚本添加到我们的物体上面,运行游戏。
animation.Play("Clip1");播放动画命令Clip1为我们的动画片段的名称。
1:用代码控制。就像第二节中最后写的那段代码一样。我们按W、A、S、D、物体做前后左右运动。(http://www.narkii.com/club/bbs_273109.shtml)当然一些简单的运动这样是可以完成的。但是一些复杂的运动只用代码来编辑就会非常非常麻烦了,比如你个人往前奔跑或者打斗。这样我们就需要动画来完成了。
2:用代码和动画想结合的方式。我们首先就来一下在unity中的动画是怎么制作和添加到物体上的.然后再了解一下怎么又代码来控制他的播放.
unity中的动画一般有两种方式的到,(1)用unity提供的动画系统制作动画(2)在3维软件中制作动画,然后导入到unity中。
我们先来看第一种方式:首先,我们在unity中创建一个物体,给它加上材质,如图:
![](https://i-blog.csdnimg.cn/blog_migrate/5a45b280c30ae1b7c89389da21f5f4b0.jpeg)
点击工具栏中的Window->Animation
如图:
![](https://i-blog.csdnimg.cn/blog_migrate/7f132c8b57637fbd661c644b41cec9e5.jpeg)
弹出如下对话框,我们下面的工作主要在这里面完成了
![](https://i-blog.csdnimg.cn/blog_migrate/6cec74affc977915d625e08383e64e07.jpeg)
1:为层级视图中选择的游戏对象。
2:为被选择的游戏对象的动画属性的列表。在这个列表上排列着所有关联到这个游戏对象的组件(Components)和材质(Materials)。
3:为时间轴。
下面我们开始创建一个新的动画剪辑
点击4的位置
![](https://i-blog.csdnimg.cn/blog_migrate/41ae6ee988bace53f89d7fdefaecb6e9.jpeg)
点击【Create New Clip】.
填写动画片段名称,我们命名为Clip1.
![](https://i-blog.csdnimg.cn/blog_migrate/d8fe1be69c90217fffd1b0c86bb2f3a8.jpeg)
我们发现在Inspector视图中多出一列Animation组件
![](https://i-blog.csdnimg.cn/blog_migrate/40061bfd8a5e8227426ad3301b2b51f8.jpeg)
然后点击Positoin后面的下拉按钮选择Add Curves(添加动画曲线)
![](https://i-blog.csdnimg.cn/blog_migrate/33aca3e8dfcd65ab03fe134f4a8c783e.jpeg)
得到如图所示结果:
![](https://i-blog.csdnimg.cn/blog_migrate/3d70aa53c3d6238e873a45534caf90e2.jpeg)
我们现在想做的动画是让它沿着X轴的正方向进行移动。
首先我们选择Position.x.在时间轴上选择一个时间点我们选择(0:40.0)然后在两条线的相交处,单击右键
![](https://i-blog.csdnimg.cn/blog_migrate/e56008f708cff09bd28e9fd9ad032357.jpeg)
点击Add Key添加关键帧。然后选择关键帧向上拖动。
![](https://i-blog.csdnimg.cn/blog_migrate/b33207abe4e185fd90c9ac7d76c0a5f9.jpeg)
或者改变动画视图中Position.x的值,也可以调整Inspector视图或者scene视图中x的值
![](https://i-blog.csdnimg.cn/blog_migrate/e2e2e706f2b076cba502ff2de235856a.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/24ca2ae77241c51d13549900a13f6264.jpeg)
我们将Position.x的值改为1.
![](https://i-blog.csdnimg.cn/blog_migrate/3012a44c376cf63f12088a48b88479e6.jpeg)
然后点击播放按钮,在Game是图中看下效果如何。
我们发现在Game视图中。动画播放一次就停止了。要想让他连续播放。我们现在Project视图中找到我们制作的Clip1选中它。然后在Inspector视图中点击Wrap Mode后的下拉菜单。选择Loop,这样就可以循环播放了。
![](https://i-blog.csdnimg.cn/blog_migrate/68472c94cc8cc3ffff0a273b9ad78a0e.jpeg)
这样一个动画就制作完成了。当然你自己也可以试一下其他组件的动画。都非常有意思的。
下面我们来看下怎么来控制这个动画的播放可停止。
我们通过一个简单的案例来介绍一下。
我们先建两个按钮一个开始,一个停止。点击开始按钮是动画开始播放,点击停止时停止播放。
首先第一步我们要把物体Animation组件下的Play Automatcally选框勾掉。不要让他开始就播放。
![](https://i-blog.csdnimg.cn/blog_migrate/7388670e54e5e14e27e55a80630d744a.jpeg)
然后我们新建一个JS脚本,命名为(Clip One)
编辑代码如下:
function OnGUI()
{
//创建第一个按钮“开始”
if (GUI.Button(Rect(10,70,50,30),"开始"))
{
//当按钮点击时播放动画
animation.Play("Clip1");
}
//创建第二个按钮“停止”
if (GUI.Button(Rect(70,70,50,30),"停止"))
{
//当按钮点击时停止动画
animation.Stop("Clip1");
}
}
将脚本添加到我们的物体上面,运行游戏。
animation.Play("Clip1");播放动画命令Clip1为我们的动画片段的名称。