XRoom_Unity/Assets/MaintainBallScale.cs
2025-05-31 10:20:20 +03:30

43 lines
1.1 KiB
C#

using UnityEngine;
using System.Collections.Generic;
public class MaintainBallScale : MonoBehaviour
{
[System.Serializable]
public class BallData
{
public Transform ball;
[HideInInspector]
public Vector3 initialWorldScale;
}
public List<BallData> balls = new List<BallData>();
void Start()
{
foreach (var ballData in balls)
{
if (ballData.ball != null)
{
ballData.initialWorldScale = ballData.ball.lossyScale;
}
}
}
void LateUpdate()
{
foreach (var ballData in balls)
{
if (ballData.ball != null && ballData.ball.parent != null)
{
Vector3 parentScale = ballData.ball.parent.lossyScale;
ballData.ball.localScale = new Vector3(
ballData.initialWorldScale.x / parentScale.x,
ballData.initialWorldScale.y / parentScale.y,
ballData.initialWorldScale.z / parentScale.z
);
}
}
}
}