修改水
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Obi
|
||||
{
|
||||
@@ -20,46 +19,16 @@ namespace Obi
|
||||
this.scale = scale;
|
||||
}
|
||||
|
||||
public void FromTransform3D(Transform source, ObiRigidbody rb)
|
||||
public void FromTransform(Transform source, bool is2D = false)
|
||||
{
|
||||
if (rb != null && rb.unityRigidbody != null)
|
||||
{
|
||||
translation = source.position - rb.unityRigidbody.transform.position + rb.position;
|
||||
rotation = (source.rotation * Quaternion.Inverse(rb.unityRigidbody.transform.rotation)) * rb.rotation;
|
||||
}
|
||||
else
|
||||
{
|
||||
translation = source.position;
|
||||
rotation = source.rotation;
|
||||
}
|
||||
|
||||
translation = source.position;
|
||||
rotation = source.rotation;
|
||||
scale = source.lossyScale;
|
||||
}
|
||||
|
||||
public void FromTransform2D(Transform source, ObiRigidbody2D rb)
|
||||
{
|
||||
if (rb != null && rb.unityRigidbody != null)
|
||||
if (is2D)
|
||||
{
|
||||
translation = source.position - rb.unityRigidbody.transform.position + (Vector3)rb.position;
|
||||
rotation = (source.rotation * Quaternion.Inverse(rb.unityRigidbody.transform.rotation)) * Quaternion.AngleAxis(rb.rotation, Vector3.forward);
|
||||
translation[2] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
translation = source.position;
|
||||
rotation = source.rotation;
|
||||
}
|
||||
|
||||
scale = source.lossyScale;
|
||||
translation[2] = 0;
|
||||
}
|
||||
|
||||
public AffineTransform Inverse()
|
||||
{
|
||||
var conj = Quaternion.Inverse(rotation);
|
||||
var invScale = new Vector3(1 / scale.x, 1 / scale.y, 1 / scale.z);
|
||||
return new AffineTransform(conj * Vector3.Scale(translation , -invScale),
|
||||
conj,
|
||||
invScale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user