2017-04-12 01:23:07 +09:00

34 lines
759 B
C#

using UnityEngine;
[ExecuteInEditMode]
[RequireComponent(typeof(D2D_DestructibleSprite))]
[RequireComponent(typeof(Rigidbody2D))]
[AddComponentMenu("Destructible 2D/D2D Dynamic Mass")]
public class D2D_DynamicMass : MonoBehaviour
{
public float MassPerPixel = 0.01f;
private D2D_DestructibleSprite destructibleSprite;
protected virtual void FixedUpdate()
{
UpdateMass();
}
protected virtual void LateUpdate()
{
UpdateMass();
}
private void UpdateMass()
{
if (destructibleSprite == null) destructibleSprite = GetComponent<D2D_DestructibleSprite>();
var newMass = destructibleSprite.SolidPixelCount * MassPerPixel;
if (GetComponent<Rigidbody2D>().mass != newMass)
{
GetComponent<Rigidbody2D>().mass = newMass;
}
}
}