private Vector3 temp;
private void SetPosition(Transform cube1, Transform cube2, Transform cube3)//映像随飞机移动 指向敌机
{
temp = cube1.position - cube2.position;
float length = Mathf.Sqrt(temp.x * temp.x + temp.y * temp.y + temp.z * temp.z);
cube3.localScale = new Vector3(0.05f, 0.05f, length);
cube3.position = cube1.position;
cube3.LookAt(cube2);
}
这行代码用于一个物体 产生映象然后指向另一个物体
主要在于lookAt的用法,cube3 指向 Cube2的方法;
Itween中Itweenpath的用法:
private int i = 1;
public Vector3[] path;//Itweenpath 的坐标点存储的
private void Awake()
{
path = iTweenPath.GetPath("One");//获取ItweenPath的坐标点
}
private void Begin()
{
Hashtable args = new Hashtable();
if (i < path.Length)
{
Vector3 go = path[i] - path[i - 1];//获取itweenPath两点之间的向量差
Vector3 v = Quaternion.FromToRotation(Vector3.right, path[i] - path[i - 1]).eulerAngles;//效果:跟SetFromToRotation差不多,区别是可以返回一个Quaternion。通常用来让transform的一个轴向(例如 y轴)与toDirection在世界坐标中同步。
v.x = 0;
v.y = 0;
iTween.RotateTo(gameObject, iTween.Hash("rotation", v, "time", 1));//旋转游戏物体到指定的角度
args.Add("speed", 0.1f);
args.Add("position", path[i++]);//将path[i]赋值到position 中 ,在进行自加
args.Add("easetype", iTween.EaseType.linear);
args.Add("oncomplete", "Begin");//结束时再执行本函数
args.Add("oncompletetarget", gameObject);//结束时的目标还为本物体
iTween.MoveTo(gameObject, args);
}
}
通过ItweenPath画出物体移动路径 , itween得到路径的每一个点,通过不断调用函数本身,达到运动中,面向物体的点;
Vector3 v = Quaternion.FromToRotation(Vector3.right, path[i] - path[i - 1]).eulerAngles;/
这行代码第一个通常用来让transform的一个轴向(例如 y轴)与toDirection在世界坐标中同步。