开始从事Unity开发工作已经有一个月了,开个博客记录下工作中的一些小问题,心得之类的。以便自己以后翻看和希望能对后来的人们有所帮助。
首先是前两天学习 iTween时遇到的小问题和解决方案:
1. MoveTo()移动会抖
使用iTween时可以方便的把物体从一个状态平滑的过度到另一个状态,比如A位置平滑移动到B位置,但是如果你要使用Itween使A物体追踪B物体(B在物理移动中),那么一般的MoveTo之类的方法,A物体在追踪时就会有严重的抖动。
此时的解决方法时,每帧调用MoveUpdate()来移动A物体,需要注意到时必须放在FixedUpdate()中,这样就可以平滑的追踪了。
2. 旋转到指定的方向
要时一个物体转向指定的方向,使用LookTo(),非常方便。
3. “oncomplete”无效
void Start()
{
iTween.MoveTo(Camera.mainCamera.gameObject, iTween.Hash("position",
newPos, "time", 0.4f, "oncomplete", "OnComplete"));
}
void OnComplete()
{
OnDragFinished();
}
情况 1: 包含这段代码的脚本没有附加在Camera.mainCamera上,因为iTween是在你给它的“Camera.mainCamera. gameObject”上寻找“OnComplete()”方法的,自然就找不到了。此时的解决办法有 3个。
a.把这个脚本加到Camera.mainCamera,通常不可取。
b.使用 "oncompletetarget",gameObject ,把OnComplete()所在的gameObject赋给iTween。
c.比如你的OnComplete()在一个没有继承MonoBehaviour的类中,此时就无法使用iTween的callback方法了。这时我会用一个自定义的延迟调用类来解决,比如 AutoTimer.Add("Name", OnComplete,0.4f); 0.4秒后调用OnComplete();
情况 2:你使用的是iTween 1.0...此时要把"oncomplete" 改成 "onComplete"或者下载最新的iTween去。