在unity的制作过程中,怎么让一个物体按照我想要的方式懂起来。一般有两种方式,
1:用代码控制。就像第二节中最后写的那段代码一样。我们按W、A、S、D、物体做前后左右运动。(
当然一些简单的运动这样是可以完成的。但是一些复杂的运动只用代码来编辑就会非常非常麻烦了,比如你个人往前奔跑或者打斗。这样我们就需要动画来完成了。
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为我们的动画片段的名称。