我需要在Unity中运行时移动和扩展 3D对象。
我可以像这样移动它:
void Update(){
public Transform target_1;
float relocationSpeed = 10;
float step = relocationSpeed * Time.deltaTime;
MyObject.transform.position = Vector3.MoveTowards (MyObject.transform.position, target_1.position, step);
}
我可以使用这样的协同程序来扩展它:
float scaleSize = 20;
IEnumerator ScaleUpMyObject(){
for (var i = 0; i < scaleSize; i++) {
MyObject.transform.localScale += new Vector3 (1, 1, 1);
yield return new WaitForSeconds(0.1f);
}
}
但是,移动和缩放对象同时的最佳方式是什么?
谢谢!
答案 0 :(得分:2)
如果不改变原始代码的太多,你可以做类似的事情
public Vector3 wantedSize = new Vector3(5, 5, 5);
void Update()
{
float relocationSpeed = 10;
float step = relocationSpeed * Time.deltaTime;
MyObject.transform.position = Vector3.MoveTowards(MyObject.transform.position, target_1.position, step);
MyObject.transform.localScale = Vector3.MoveTowards(MyObject.transform.localScale, wantedSize, step);
}
答案 1 :(得分:0)
你可以使用动画师,这是一个例子。
Unity 3D object animation example
你也可以使用像iTween这样的库(在资产商店中免费)来为位置和比例的矢量设置动画,也有转换选项,不仅可以线性转换(轻松进入四边形,弹跳,指数)等等。)