[英]How do I change the y scale of my player in Unity?
当我尝试此代码时,它给了我以下错误:“无法修改 Transform.localRotation,因为它不是变量。”
public Transform Player;
public float speed = 12f;
bool isGrounded;
if (Input.GetKey("left ctrl") && isGrounded)
{
speed = 6f;
Player.localScale.y = 0.5f;
}
else
{
speed = 12f;
Player.localScale.y = 1f;
}
Transform.localScale
是Vector3
属性, Transform.localRotation
是Quaternion
属性,它们都是struct
和值类型属性。
你不能只改变它们的一个字段,因为它只会改变属性的 getter 返回的struct
值中的一个字段,但永远不会用新值调用属性的 setter。
您宁愿必须重新分配整个值,例如
// Store in a temporary variable
var scale = Player.localScale;
// Now in a variable (or field) you CAN change the field values
scale.y = 0.5f;
// Assign back to the property
Player.localScale = scale;
另请参阅c# 中的结构和属性问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.