首页 > 解决方案 > 仅更改对象的 X 轴比例

问题描述

如何随时间更改对象的 X 轴比例?我试过这段代码:

transform.localScale.x *= 1.1f;

但它给了我这个错误:

无法修改“Transform.localScale”的返回值,因为它不是变量

标签: c#unity3d

解决方案


要仅更改 localScale 中的单个值,您需要在本地创建一个新的 Vector3。这样做的两个例子:

// Make a new vector with identical y and z values, but with a new x value.
var newScale = new Vector3(
    transform.localScale.x * 1.1f,
    transform.localScale.y,
    transform.localScale.z);

// Set scale to the new Vector3.
transform.localScale = newScale;

替代:

// Copy into a variable. We can now make per-value changes.
var newScale = transform.localScale;
newScale.x *= 1.1f;

// Copy back into the transform.
transform.localScale = newScale;

推荐阅读