устанавливает масштаб ребенка в мировое пространство, а не в локальное пространство.
локальное пространство используется по умолчанию, но оно выходит за пределы масштаба родителя, поэтому, когда враг сжимается, текст тоже будет.
в качестве альтернативы вы можете установить оба объекта в качестве потомков пустого объекта, затем просто уменьшить масштаб врага, и текст должен остаться того же размера, так как он использует масштаб пустого родителя, который также не меняет размер.
см. Здесь:
public static Vector3 GetWorldScale(Transform transform)
{
Vector3 worldScale = transform.localScale;
Transform parent = transform.parent;
while (parent != null)
{
worldScale = Vector3.Scale(worldScale,parent.localScale);
parent = parent.parent;
}
return worldScale;
}
только обходной путь, вы должны использовать это:
yourtransform.LocalScale=Transform.localToWorldMatrix
, но это вызывает у меня проблемы ... вышеуказанный метод работаетну, хотя.
transform.scale=GetWorldScale(transform);
edit : давай проясним, проще всего было бы очистить объект перед сжатием родителя.это разделит весы.