修改水
This commit is contained in:
@@ -13,9 +13,6 @@ namespace Obi
|
||||
[SerializeProperty("Thickness")]
|
||||
[SerializeField] private float thickness = 0;
|
||||
|
||||
[SerializeProperty("Inverted")]
|
||||
[SerializeField] private bool inverted = false;
|
||||
|
||||
[SerializeProperty("CollisionMaterial")]
|
||||
[SerializeField] private ObiCollisionMaterial material;
|
||||
|
||||
@@ -25,11 +22,7 @@ namespace Obi
|
||||
{
|
||||
set
|
||||
{
|
||||
if (material != value)
|
||||
{
|
||||
material = value;
|
||||
ForceUpdate();
|
||||
}
|
||||
material = value;
|
||||
}
|
||||
get { return material; }
|
||||
}
|
||||
@@ -41,7 +34,7 @@ namespace Obi
|
||||
if (filter != value)
|
||||
{
|
||||
filter = value;
|
||||
ForceUpdate();
|
||||
dirty = true;
|
||||
}
|
||||
}
|
||||
get { return filter; }
|
||||
@@ -54,25 +47,12 @@ namespace Obi
|
||||
if (!Mathf.Approximately(thickness, value))
|
||||
{
|
||||
thickness = value;
|
||||
ForceUpdate();
|
||||
dirty = true;
|
||||
}
|
||||
}
|
||||
get { return thickness; }
|
||||
}
|
||||
|
||||
public bool Inverted
|
||||
{
|
||||
set
|
||||
{
|
||||
if (inverted != value)
|
||||
{
|
||||
inverted = value;
|
||||
ForceUpdate();
|
||||
}
|
||||
}
|
||||
get { return inverted; }
|
||||
}
|
||||
|
||||
public ObiShapeTracker Tracker
|
||||
{
|
||||
get { return tracker; }
|
||||
@@ -88,9 +68,15 @@ namespace Obi
|
||||
}
|
||||
}
|
||||
|
||||
public ObiForceZone ForceZone
|
||||
public IntPtr OniCollider
|
||||
{
|
||||
get; set;
|
||||
get
|
||||
{
|
||||
if (oniCollider == IntPtr.Zero)
|
||||
FindSourceCollider();
|
||||
|
||||
return oniCollider;
|
||||
}
|
||||
}
|
||||
|
||||
public ObiRigidbodyBase Rigidbody
|
||||
@@ -99,8 +85,11 @@ namespace Obi
|
||||
}
|
||||
|
||||
protected ObiColliderHandle shapeHandle;
|
||||
|
||||
protected IntPtr oniCollider;
|
||||
protected ObiRigidbodyBase obiRigidbody;
|
||||
protected bool wasUnityColliderEnabled = true;
|
||||
protected bool dirty = false;
|
||||
|
||||
protected ObiShapeTracker tracker; /**< tracker object used to determine when to update the collider's shape*/
|
||||
|
||||
@@ -151,6 +140,7 @@ namespace Obi
|
||||
|
||||
protected void AddCollider()
|
||||
{
|
||||
|
||||
Component unityCollider = GetUnityCollider(ref wasUnityColliderEnabled);
|
||||
|
||||
if (unityCollider != null && (shapeHandle == null || !shapeHandle.isValid))
|
||||
@@ -164,6 +154,7 @@ namespace Obi
|
||||
// Create rigidbody if necessary, and link ourselves to it:
|
||||
CreateRigidbody();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void RemoveCollider()
|
||||
@@ -178,15 +169,6 @@ namespace Obi
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Flags the collider as needing to be updated from now on. If the object it's on has any editor static flag enabled,
|
||||
* the collider will be again flagged as *not* needing to be updated after its next update.
|
||||
*/
|
||||
public void ForceUpdate()
|
||||
{
|
||||
ObiColliderWorld.GetInstance().MarkColliderAsNeedingUpdate(shapeHandle);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the collider transform or its shape have changed any relevant property, and update their Oni counterparts.
|
||||
*/
|
||||
@@ -194,18 +176,14 @@ namespace Obi
|
||||
{
|
||||
bool unityColliderEnabled = false;
|
||||
Component unityCollider = GetUnityCollider(ref unityColliderEnabled);
|
||||
var colliderWorld = ObiColliderWorld.GetInstance();
|
||||
|
||||
if (unityCollider != null)
|
||||
{
|
||||
// Only if this object is not static:
|
||||
if (tracker != null) //&& needsUpdate)
|
||||
{
|
||||
// no need to test for changes, all we are doing is setting some variables here.
|
||||
if (tracker != null)
|
||||
tracker.UpdateIfNeeded();
|
||||
}
|
||||
|
||||
// check isStatic, *after* updating the tracker at least once.
|
||||
if (unityCollider.gameObject.isStatic)
|
||||
ObiColliderWorld.GetInstance().MarkColliderAsNotNeedingUpdate(shapeHandle);
|
||||
}
|
||||
// If the unity collider is null but its handle is valid, the unity collider has been destroyed.
|
||||
else if (shapeHandle != null && shapeHandle.isValid)
|
||||
|
||||
Reference in New Issue
Block a user