去掉obi,使用自写绳索
This commit is contained in:
@@ -1,80 +0,0 @@
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
namespace Obi{
|
||||
|
||||
/**
|
||||
* Holds information about the physics properties of a particle or collider, and how it should react to collisions.
|
||||
*/
|
||||
[CreateAssetMenu(fileName = "collision material", menuName = "Obi/Collision Material", order = 180)]
|
||||
public class ObiCollisionMaterial : ScriptableObject
|
||||
{
|
||||
protected ObiCollisionMaterialHandle materialHandle;
|
||||
|
||||
public float dynamicFriction;
|
||||
public float staticFriction;
|
||||
public float stickiness;
|
||||
public float stickDistance;
|
||||
|
||||
public Oni.MaterialCombineMode frictionCombine;
|
||||
public Oni.MaterialCombineMode stickinessCombine;
|
||||
|
||||
[Space]
|
||||
public bool rollingContacts = false;
|
||||
|
||||
[Indent()]
|
||||
[VisibleIf("rollingContacts")]
|
||||
public float rollingFriction;
|
||||
|
||||
public ObiCollisionMaterialHandle handle
|
||||
{
|
||||
get
|
||||
{
|
||||
CreateMaterialIfNeeded();
|
||||
return materialHandle;
|
||||
}
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
UpdateMaterial();
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
ObiColliderWorld.GetInstance().DestroyCollisionMaterial(materialHandle);
|
||||
}
|
||||
|
||||
private void OnValidate()
|
||||
{
|
||||
// we can't create GameObjects in OnValidate(), so make sure the colliderworld already exists.
|
||||
UpdateMaterial();
|
||||
}
|
||||
|
||||
public void UpdateMaterial()
|
||||
{
|
||||
var world = ObiColliderWorld.GetInstance();
|
||||
var mat = world.collisionMaterials[handle.index];
|
||||
mat.FromObiCollisionMaterial(this);
|
||||
world.collisionMaterials[handle.index] = mat;
|
||||
}
|
||||
|
||||
protected void CreateMaterialIfNeeded()
|
||||
{
|
||||
if (materialHandle == null || !materialHandle.isValid)
|
||||
{
|
||||
var world = ObiColliderWorld.GetInstance();
|
||||
|
||||
// create the material:
|
||||
materialHandle = world.CreateCollisionMaterial();
|
||||
materialHandle.owner = this;
|
||||
|
||||
// copy material data from this material (use materialHandle instead of handle, to not retrigger CreateMaterialIfNeeded)
|
||||
var mat = world.collisionMaterials[materialHandle.index];
|
||||
mat.FromObiCollisionMaterial(this);
|
||||
world.collisionMaterials[materialHandle.index] = mat;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user