繁体   English   中英

如何在 Unity 中更改播放器的 y 比例?

[英]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.localScaleVector3 属性Transform.localRotationQuaternion 属性,它们都是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM