コード例 #1
0
 private static PanelColliderSerializer PanelColliderToSerializer(SpringPanelCollider sourceCollider)
 {
     return(new PanelColliderSerializer
     {
         baseInfo = TransformToColliderSerializerBaseInfo(sourceCollider.transform, PanelColliderToken),
         width = sourceCollider.width,
         height = sourceCollider.height,
         linkedRenderer = GetComponentName(sourceCollider.linkedRenderer)
     });
 }
コード例 #2
0
ファイル: SpringBone.cs プロジェクト: kooa77/UnityActions
        private bool CheckForGroundCollision(bool preserveImpulse = true)
        {
            // Todo: this assumes a flat ground parallel to the xz plane
            var worldHeadPosition = transform.position;
            var worldTailPosition = currTipPos;
            var worldRadius       = transform.TransformDirection(radius, 0f, 0f).magnitude;
            var worldLength       = (currTipPos - worldHeadPosition).magnitude;
            var groundHeight      = manager.groundHeight;

            worldHeadPosition.y -= groundHeight;
            worldTailPosition.y -= groundHeight;
            var collidingWithGround = SpringPanelCollider.CheckForCollisionWithAlignedPlaneAndReact(
                worldHeadPosition, worldLength, ref worldTailPosition, worldRadius, SpringPanelCollider.Axis.Y);

            if (collidingWithGround != CollisionStatus.NoCollision)
            {
                worldTailPosition.y += groundHeight;
                currTipPos           = worldTailPosition;
                prevTipPos           = currTipPos;

                FixBoneLength();
            }
            return(collidingWithGround != CollisionStatus.NoCollision);
        }