我正在用Unity3D设计一个迷宫 . 迷宫有许多分叉,玩家将在每次分叉前停下来,只需选择左或右 . 然后一个自动动画将让玩家通过下一个分叉直到迷宫结束(或直到死胡同) .
要为我在Unity项目中使用AniMate和C#的播放器设置动画 . 使用AniMate我只是为每个分叉创建一个点对点动画(例如下面的法师:从开始/红色箭头到第5点)
我的问题是我的动画脚本(与“第一人称控制器”相关联)无法正常工作,因为物理不受尊重(玩家穿过墙壁) . 如果在同一个项目中我启用了Unity中的标准角色控件,那么我可以在迷宫中使用墙壁的物理限制等进行导航......(即我有碰撞器) .
这是我按左键从起点,从第1点到第2点时使用的代码示例:
void FixedUpdate () {
if (Input.GetKey(KeyCode.LeftArrow)) {
//To point 1
Hashtable props = new Hashtable();
props.Add("position", new Vector3(756f,112f,1124f));
props.Add("physics", true);
Ani.Mate.To(transform, 2, props);
//To point 2
Hashtable props2 = new Hashtable();
props2.Add("position", new Vector3(731f,112f,1124f));
props2.Add("physics", true);
Ani.Mate.To(transform, 2, props2);
}
}
当我按下左箭头按钮时实际发生的事情是玩家使用穿过墙壁的直线直接移动到第2点 . 我试图传递给AniMate“Physics = true”,但它似乎没有帮助 .
有关如何解决这个问题的任何想法?
或者......任何关于如何获得更优化代码的提示,只需使用一系列vector3坐标(每个点一个)来获得我想要的简单动画,而不必声明新的Hashtable();等......每一次?我之所以选择AniMate只是因为1.我是Unity 2的初学者 . 我不需要复杂的动画(例如我不需要使用iTween),只需沿着直线修复动画,我需要一些非常简单快速的动画 . 在脚本中实现 . 但是,如果某人有一个同样简单的解决方案,那将是受欢迎的 .
预先感谢您的帮助