public void setGravity(Gravity.Direction grav) { if (gravity != grav) { gravity = grav; } }
Gravity.Direction calculateNearestGravity() { Gravity.Direction newNearestGravity = nearestGravity; float distanceToClosest = 180; foreach (Gravity.Direction grav in new Gravity.Direction[] { Gravity.Direction.Down, Gravity.Direction.Up, Gravity.Direction.Left, Gravity.Direction.Right, Gravity.Direction.Front, Gravity.Direction.Back, }) { float vectorDistance = Vector3.Angle(Gravity.vectors [grav], targetUp); if (vectorDistance < distanceToClosest) { distanceToClosest = vectorDistance; newNearestGravity = grav; } } if (!nearestGravity.Equals(newNearestGravity) && heldObject != null) { heldObject.gravityTransition(nearestGravity, newNearestGravity); heldObjectAvatar.GetComponent <MeshRenderer> ().sharedMaterials = heldObject.gameObject.GetComponent <Renderer> ().sharedMaterials; } return(nearestGravity = newNearestGravity); }
public override void gravityTransition(Gravity.Direction oldGrav, Gravity.Direction newGrav) { if (!(Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl))) { setGravity(Gravity.applyTransition(Gravity.getTransition(oldGrav, newGrav), gravity)); } }
public abstract void gravityTransition(Gravity.Direction oldGrav, Gravity.Direction newGrav);