Я пишу скрипт для блокировки масштаба объектов в Unity.
С objectTransformScale = objectTransform.localScale
.
Изменения, сделанные на objectTransformScale
, также должны повлиять на objectTransform.localScale
, но это не так.
Следовательно, я должен установить значение обратно как objectTransform.localScale = objectTransformScale;
Почему это не работает?
public string demension;
private Transform objectTransform;
private Vector3 objectTransformScale;
private float originalX;
private float originalY;
private float originalZ;
// Use this for initialization
void Start () {
objectTransform = GetComponent<Transform>();
objectTransformScale = objectTransform.localScale;
originalX = objectTransformScale.x;
originalY = objectTransformScale.y;
originalZ = objectTransformScale.z;
}
// Update is called once per frame
void Update () {
objectTransformScale = objectTransform.localScale;
if (demension.Equals("x"))
{
objectTransformScale.x = originalX;
}
else if(demension.Equals("y"))
{
objectTransformScale.y = originalY;
}
else if(demension.Equals("z"))
{
objectTransformScale.z = originalZ;
}
else if (demension.Equals("a"))
{
objectTransformScale.z = originalZ;
objectTransformScale.y = originalY;
objectTransformScale.x = originalX;
}
//The scale of object won't be locked if I command the line below.
objectTransform.localScale = objectTransformScale;
}