_xiaofang/xiaofang/Assets/Obi/Scripts/Common/Collisions/ObiRigidbodyBase.cs
杨号敬 bcc74f0465 add
2024-12-18 02:18:45 +08:00

56 lines
1.3 KiB
C#

using UnityEngine;
using Unity.Profiling;
using System;
using System.Collections;
namespace Obi{
/**
* Small helper class that lets you specify Obi-only properties for rigidbodies.
*/
[ExecuteInEditMode]
public abstract class ObiRigidbodyBase : MonoBehaviour
{
public bool kinematicForParticles = false;
protected ObiRigidbodyHandle rigidbodyHandle;
public ObiRigidbodyHandle handle
{
get
{
if (rigidbodyHandle == null || !rigidbodyHandle.isValid)
{
var world = ObiColliderWorld.GetInstance();
// create the material:
rigidbodyHandle = world.CreateRigidbody();
rigidbodyHandle.owner = this;
}
return rigidbodyHandle;
}
}
protected virtual void OnEnable()
{
//handle = ObiColliderWorld.GetInstance().CreateRigidbody();
//handle.owner = this;
}
public void OnDisable()
{
ObiColliderWorld.GetInstance().DestroyRigidbody(handle);
}
public abstract void UpdateIfNeeded(float stepTime);
/**
* Reads velocities back from the solver.
*/
public abstract void UpdateVelocities(Vector3 linearDelta, Vector3 angularDelta);
}
}