public void setGravity(Gravity.Direction grav)
 {
     if (gravity != grav)
     {
         gravity = grav;
     }
 }
Esempio n. 2
0
    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));
     }
 }
Esempio n. 4
0
 public abstract void gravityTransition(Gravity.Direction oldGrav, Gravity.Direction newGrav);