42 lines
985 B
C#
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);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|