JiNanCementPlantForUnity/Assets/3rdParty/Obi2/Scripts/Collisions/ColliderTrackers/Trackers2D/ObiCapsuleShapeTracker2D.cs

42 lines
985 B
C#

using System;
using UnityEngine;
namespace Obi{
public class ObiCapsuleShapeTracker2D : ObiShapeTracker
{
private CapsuleDirection2D direction;
private Vector2 size;
private Vector2 center;
public ObiCapsuleShapeTracker2D(CapsuleCollider2D collider){
this.collider = collider;
adaptor.is2D = true;
oniShape = Oni.CreateShape(Oni.ShapeType.Capsule);
}
public override void UpdateIfNeeded (){
CapsuleCollider2D capsule = collider as CapsuleCollider2D;
if (capsule != null && (capsule.size != size ||
capsule.direction != direction ||
capsule.offset != center)){
size = capsule.size;
direction = capsule.direction;
center = capsule.offset;
adaptor.Set(center,
(capsule.direction == CapsuleDirection2D.Horizontal ? size.y : size.x)*0.5f,
Mathf.Max(size.x,size.y),
capsule.direction == CapsuleDirection2D.Horizontal ? 0 : 1);
Oni.UpdateShape(oniShape,ref adaptor);
}
}
}
}