예제 #1
0
 public static void Create(BlobBuilder builder, FlipperHit src, ref BlobPtr <Collider> dest)
 {
     ref var ptr      = ref UnsafeUtility.As <BlobPtr <Collider>, BlobPtr <FlipperCollider> >(ref dest);
예제 #2
0
 public static void Create(BlobBuilder builder, HitLine3D src, ref BlobPtr <Collider> dest)
 {
     ref var linePtr  = ref UnsafeUtility.As <BlobPtr <Collider>, BlobPtr <Line3DCollider> >(ref dest);
예제 #3
0
 public static void Create(BlobBuilder builder, HitCircle src, ref BlobPtr <Collider> dest, ColliderType type = ColliderType.Circle)
 {
     ref var ptr      = ref UnsafeUtility.As <BlobPtr <Collider>, BlobPtr <CircleCollider> >(ref dest);
 public static void Create(BlobBuilder builder, HitTriangle src, ref BlobPtr <Collider> dest)
 {
     ref var trianglePtr = ref UnsafeUtility.As <BlobPtr <Collider>, BlobPtr <TriangleCollider> >(ref dest);
예제 #5
0
        public static void Create(BlobBuilder builder, HitObject src, ref BlobPtr <Collider> dest)
        {
            switch (src)
            {
            case KickerHit kickerHit:
                CircleCollider.Create(builder, kickerHit, ref dest, ColliderType.KickerCircle);
                break;

            case TriggerHitCircle triggerHitCircle:
                CircleCollider.Create(builder, triggerHitCircle, ref dest, ColliderType.TriggerCircle);
                break;

            case TriggerHitLineSeg triggerHitLine:
                LineCollider.Create(builder, triggerHitLine, ref dest, ColliderType.TriggerLine);
                break;

            case BumperHit bumperHit:
                CircleCollider.Create(builder, bumperHit, ref dest, ColliderType.Bumper);
                break;

            case HitCircle hitCircle:
                CircleCollider.Create(builder, hitCircle, ref dest);
                break;

            case LineSegSlingshot lineSegSlingshot:
                LineSlingshotCollider.Create(builder, lineSegSlingshot, ref dest);
                break;

            case FlipperHit flipperHit:
                FlipperCollider.Create(builder, flipperHit, ref dest);
                break;

            case GateHit gateHit:
                GateCollider.Create(builder, gateHit, ref dest);
                break;

            case LineSeg lineSeg:
                LineCollider.Create(builder, lineSeg, ref dest);
                break;

            case HitLine3D hitLine3D:
                Line3DCollider.Create(builder, hitLine3D, ref dest);
                break;

            case HitLineZ hitLineZ:
                LineZCollider.Create(builder, hitLineZ, ref dest);
                break;

            case HitPoint hitPoint:
                PointCollider.Create(builder, hitPoint, ref dest);
                break;

            case HitPlane hitPlane:
                PlaneCollider.Create(builder, hitPlane, ref dest);
                break;

            case PlungerHit plungerCollider:
                PlungerCollider.Create(builder, plungerCollider, ref dest);
                break;

            case SpinnerHit spinnerHit:
                SpinnerCollider.Create(builder, spinnerHit, ref dest);
                break;

            case HitTriangle hitTriangle:
                TriangleCollider.Create(builder, hitTriangle, ref dest);
                break;

            default:
                Logger.Warn("Unsupported collider {0}, skipping.", src.GetType().Name);
                break;
            }
        }
예제 #6
0
 public static void Create(BlobBuilder builder, LineSegSlingshot src, ref BlobPtr <Collider> dest)
 {
     ref var linePtr  = ref UnsafeUtility.As <BlobPtr <Collider>, BlobPtr <LineSlingshotCollider> >(ref dest);
예제 #7
0
 public static void Create(BlobBuilder builder, HitPoint src, ref BlobPtr <Collider> dest)
 {
     ref var colliderPtr = ref UnsafeUtility.As <BlobPtr <Collider>, BlobPtr <PointCollider> >(ref dest);
예제 #8
0
 public static unsafe void Create(BlobBuilder builder, Hit3DPoly src, ref BlobPtr <Collider> dest)
 {
     ref var ptr       = ref UnsafeUtilityEx.As <BlobPtr <Collider>, BlobPtr <Poly3DCollider> >(ref dest);
 public static void Create(BlobBuilder builder, GateHit src, ref BlobPtr <Collider> dest)
 {
     ref var ptr      = ref UnsafeUtilityEx.As <BlobPtr <Collider>, BlobPtr <GateCollider> >(ref dest);
예제 #10
0
 public static void Create(BlobBuilder builder, HitPlane src, ref BlobPtr <Collider> dest)
 {
     ref var ptr      = ref UnsafeUtility.As <BlobPtr <Collider>, BlobPtr <PlaneCollider> >(ref dest);
예제 #11
0
 public override unsafe void Build(BlobBuilder builder, ref BlobPtr <T> data)
 {
     ref var value = ref builder.Allocate(ref data);