unity DOtweenPath 无法动态加载路径
很麻烦呐!
查了半天还真没办法只能静态加载了
静态加载
public GameObject Model;
public static GameObject Models;//模型总
public List<GameObject> Projects;
public static List<GameObject> Projectss;//预制件 白天
static List<Vector3> V3Z1s = new List<Vector3>();//批量路径
public List<GameObject> vs = new List<GameObject>();//路径点
public int a;
void Awake()
{
Models = Model;
Projectss = Projects;
for (int i=0; i<1; i++)
{
//通过a 分类
switch (a)
{
case 0:
V3Z1s.Add(vs[0].transform.position);
V3Z1s.Add(vs[2].transform.position);
break;
case 1:
V3Z1s.Add(vs[1].transform.position);
V3Z1s.Add(vs[3].transform.position);
break;
case 2:
V3Z1s.Add(vs[4].transform.position);
V3Z1s.Add(vs[6].transform.position);
break;
case 3:
V3Z1s.Add(vs[5].transform.position);
V3Z1s.Add(vs[7].transform.position);
break;
}
}
}
[MenuItem("Too/DotweenPathTo")]
static void PathMove()
{
for (int i = 0; i < 10; i++)
{
GameObject obj = Instantiate(Projectss[Random.Range(0, 11)]);
// GameObject obj = Instantiate(Projects[0]);
obj.transform.position = V3Z1s[0];
obj.transform.SetParent(Models.transform);
obj.AddComponent<DOTweenPath>();
DOTweenPath paths = obj.transform.GetComponent<DOTweenPath>();
obj.transform.rotation = Quaternion.Euler(0, -90, 0);
paths.wps = V3Z1s;
paths.duration = 15;
paths.easeType = Ease.Linear;
// paths.lockRotation = AxisConstraint.Y;
paths.orientType = DG.Tweening.Plugins.Options.OrientType.ToPath;
paths.loops = -1;
paths.loopType = LoopType.Restart;
obj.SetActive(false);
// paths.DOPlay();
}
}
方便下次抄 唯一注意的是需要先运行 后关闭 再执行Too/DotweenPathTo !!
新版本有ID属性 需要另外设置 如果不设置会报错
DORestart(true) 重置
如果为TRUE,则从当前位置重新计算补间的起始和结束值。
当在不同的位置生成相同的DOTweenPath时设置为TRUE(比如
使用池化系统时)
http://forum.demigiant.com/index.php?PHPSESSID=ae825763a8ac9d9d979c1d36e6790f6d&action=search2