修改水
This commit is contained in:
75
Assets/Obi/Scripts/Common/Backends/Oni/OniColliderWorld.cs
Normal file
75
Assets/Obi/Scripts/Common/Backends/Oni/OniColliderWorld.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
#if (OBI_ONI_SUPPORTED)
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Obi
|
||||
{
|
||||
public class OniColliderWorld : MonoBehaviour, IColliderWorldImpl
|
||||
{
|
||||
private int refCount = 0;
|
||||
|
||||
public int referenceCount { get { return refCount; } }
|
||||
|
||||
public void Awake()
|
||||
{
|
||||
ObiColliderWorld.GetInstance().RegisterImplementation(this);
|
||||
}
|
||||
|
||||
public void OnDestroy()
|
||||
{
|
||||
ObiColliderWorld.GetInstance().UnregisterImplementation(this);
|
||||
}
|
||||
|
||||
public void IncreaseReferenceCount()
|
||||
{
|
||||
refCount++;
|
||||
}
|
||||
public void DecreaseReferenceCount()
|
||||
{
|
||||
if (--refCount <= 0 && gameObject != null)
|
||||
DestroyImmediate(gameObject);
|
||||
}
|
||||
|
||||
public void UpdateWorld(float deltaTime)
|
||||
{
|
||||
Oni.UpdateColliderGrid(deltaTime);
|
||||
}
|
||||
|
||||
public void SetColliders(ObiNativeColliderShapeList shapes, ObiNativeAabbList bounds, ObiNativeAffineTransformList transforms, int count)
|
||||
{
|
||||
Oni.SetColliders(shapes.GetIntPtr(), bounds.GetIntPtr(), transforms.GetIntPtr(), count);
|
||||
}
|
||||
|
||||
public void SetRigidbodies(ObiNativeRigidbodyList rigidbody)
|
||||
{
|
||||
Oni.SetRigidbodies(rigidbody.GetIntPtr());
|
||||
}
|
||||
|
||||
public void SetCollisionMaterials(ObiNativeCollisionMaterialList materials)
|
||||
{
|
||||
Oni.SetCollisionMaterials(materials.GetIntPtr());
|
||||
}
|
||||
|
||||
public void SetTriangleMeshData(ObiNativeTriangleMeshHeaderList headers, ObiNativeBIHNodeList nodes, ObiNativeTriangleList triangles, ObiNativeVector3List vertices)
|
||||
{
|
||||
Oni.SetTriangleMeshData(headers.GetIntPtr(), nodes.GetIntPtr(), triangles.GetIntPtr(), vertices.GetIntPtr());
|
||||
}
|
||||
|
||||
public void SetEdgeMeshData(ObiNativeEdgeMeshHeaderList headers, ObiNativeBIHNodeList nodes, ObiNativeEdgeList edges, ObiNativeVector2List vertices)
|
||||
{
|
||||
Oni.SetEdgeMeshData(headers.GetIntPtr(), nodes.GetIntPtr(), edges.GetIntPtr(), vertices.GetIntPtr());
|
||||
}
|
||||
|
||||
public void SetDistanceFieldData(ObiNativeDistanceFieldHeaderList headers, ObiNativeDFNodeList nodes)
|
||||
{
|
||||
Oni.SetDistanceFieldData(headers.GetIntPtr(), nodes.GetIntPtr());
|
||||
}
|
||||
|
||||
public void SetHeightFieldData(ObiNativeHeightFieldHeaderList headers, ObiNativeFloatList samples)
|
||||
{
|
||||
Oni.SetHeightFieldData(headers.GetIntPtr(), samples.GetIntPtr());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user