坦克履带的动画效果有很多制作方法。在上篇中,利用改变贴图的offset来模拟出履带的运动。这种方法虽然凑合,但近看的时候太粗糙了,并且只适合于履带是一块模型的时候使用。如果履带是由数十个履带块组成的时候,则可以考虑用动画系统(Animation)来控制履带的运动,而且简单方便,不需要写多少代码。
一、利用ContextMenu为履带块关联上前后履带块
首先考虑到履带块的数量很多,不可能在动画编辑器里一个一个地调位置和角度,所以利用代码来控制履带的位置和角度。思路是:遍历所有履带,将这个履带的位置和角度先存下来,再将前面一个履带的位置和角度赋值给它,完成一次遍历后即可使用动画系统设置就好。
那么现在问题是怎么让履带块知道他前后履带是哪个呢?当然你可以在Inspector里面一个一个拖动,更好的办法是利用ContextMenu在编辑器页面里面就能运行脚本里写好的代码。
using UnityEngine;
public class Track_Control : MonoBehaviour
{
public Transform frontTransform;
public Transform rearTransform;
string baseName;
int thisNum ;
[ContextMenu("SetUp")]
public void SetUp()
{
//将所有履带放在一个物体下面,通过这个物体来检索前后履带
Transform parentTransform = transform.parent;
//获取履带的名字
baseName = this.name.Substring(0, 12);
thisNum = int.Parse(this.name.Substring(12));
if (front