c# - 如何在 Unity 运行时同时移动和缩放 3D 对象?
问题描述
我需要在运行时在 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);
}
}
但是同时移动和缩放我的对象的最佳方法是什么?
谢谢!
解决方案
在不更改太多原始代码的情况下,您可以执行以下操作
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);
}
推荐阅读
- c++ - 将 vanilla(平台无关)C++ 命名空间导入 Node.js
- javascript - 通过在构造函数中获取来分配属性
- c# - WPF绑定,不更新源,视图模型有基类
- c++ - 如何在不破坏任何循环的情况下运行不同的while循环
- javascript - 用纯 Javascript 将具有相同类的元素彼此相邻包装
- c++ - C++ 并行数组
- javascript - 在 Ag-Grid 中隐藏特定的行值 - Angular
- python - 与仅使用浮点变量相比,使用数组中的单个条目会更改结果
- node.js - 获取错误转换到 objectId 的路径 \ _id \ 的值对于模型失败
- azure - 在 azure devops 管道中安装应用程序时出错