Пример #1
0
        public void OnHold(Holder _holder)
        {
            if (debugLog)
            {
                Debug.Log(gameObject.name + "OnHold " + gameObject.name + " To:" + _holder.name);
            }

            if (isKinematicOption == IsKinematicOption.RigidbodyToHold)
            {
                Utils.ToggleColliders(colliders, false, collidersDontToggle);
                rigidbodyToHold.transform.position = holder.transform.position;
                rigidbodyToHold.transform.rotation = holder.transform.rotation;
            }
            else if (isKinematicOption == IsKinematicOption.All)
            {
                PhysicsRigUtils.ToggleRigKinematic(transform, true);
                Utils.ToggleColliders(colliders, false, collidersDontToggle);
                transform.position = ParentPositionWithHoldPointOffset(holder.transform.position);
                transform.rotation = holder.transform.rotation;
            }
            else if (isKinematicOption == IsKinematicOption.None)
            {
                rigidbodyToHold.isKinematic = true;
                rigidbodyToHold.MovePosition(holder.transform.position);
                rigidbodyToHold.MoveRotation(holder.transform.rotation);
            }
            onHold.Invoke();
        }
 public static void ScaleEnd(Transform parent, ResetableRigidbody[] resetables, bool isKinematicAfter = false)
 {
     PhysicsRigUtils.ResetRigTransform(resetables, false);
     PhysicsRigUtils.FixChildJointsAfterScalingParent(parent);
     PhysicsRigUtils.ResetRigTransform(resetables, false, true);
     PhysicsRigUtils.ToggleRigKinematic(resetables, isKinematicAfter);
 }
 public static void ScaleStart(Transform parent, ResetableRigidbody[] resetables, Transform scalePivot = null)
 {
     PhysicsRigUtils.ToggleRigKinematic(resetables, true);
     if (scalePivot)
     {
         PhysicsRigUtils.MoveParentToCenterOfTransform(parent, scalePivot);
     }
     else
     {
         PhysicsRigUtils.MoveParentToCenterOfChildren(parent);
     }
     PhysicsRigUtils.CacheRig(resetables);
 }
Пример #4
0
        public void OnRelease()
        {
            if (debugLog)
            {
                Debug.Log("OnRelease " + gameObject.name);
            }

            if (isKinematicOption == IsKinematicOption.RigidbodyToHold || isKinematicOption == IsKinematicOption.All)
            {
                PhysicsRigUtils.ToggleRigKinematic(transform, false);
                Utils.ToggleColliders(colliders, true, collidersDontToggle);
            }
            else if (isKinematicOption == IsKinematicOption.None)
            {
                rigidbodyToHold.isKinematic = false;
            }

            onRelease.Invoke();
        }
Пример #5
0
 public void ToggleKinematic(bool toggle)
 {
     PhysicsRigUtils.ToggleRigKinematic(transform, toggle);
 }
Пример #6
0
 public void FixChildJoints()
 {
     PhysicsRigUtils.FixChildJointsAfterScalingParent(transform);
 }
Пример #7
0
 public void MoveParentToCenterOfChild()
 {
     PhysicsRigUtils.MoveParentToCenterOfChildren(transform);
 }
Пример #8
0
 public void ResetRigTransformCached()
 {
     PhysicsRigUtils.ResetRigTransform(transform, false, true);
 }
Пример #9
0
 public void ResetRigTransformMoveCached()
 {
     PhysicsRigUtils.ResetRigTransform(transform, true, true);
 }
Пример #10
0
 public void ResetRigPhysics()
 {
     PhysicsRigUtils.ResetRigPhysics(transform);
 }
Пример #11
0
 public void ResetRigTransform()
 {
     PhysicsRigUtils.ResetRigTransform(transform, false);
 }
Пример #12
0
 public void ResetRig()
 {
     PhysicsRigUtils.FullResetRig(transform, resetables, physicsRootChild);
 }
Пример #13
0
 void OnTweenScaleEnd(bool isKinematicAfter)
 {
     tweening = false;
     PhysicsRigUtils.ScaleEnd(transform, resetableRigidbodies, isKinematicAfter);
     onTweenScaleEnd.Invoke();
 }
Пример #14
0
 void OnScaleUpdate(float toScale)
 {
     PhysicsRigUtils.ScaleUpdate(transform, new Vector3(toScale, toScale, toScale));
 }
Пример #15
0
 void OnScaleStart()
 {
     PhysicsRigUtils.ScaleStart(transform, resetableRigidbodies);
 }
Пример #16
0
 public void ScaleTo(float toScale, bool isKinematicAfter = false)
 {
     OnScaleStart();
     OnScaleUpdate(toScale);
     PhysicsRigUtils.ScaleEnd(transform, resetableRigidbodies, isKinematicAfter);
 }