立体书

using UnityEngine;
using System.Collections;

public class Orientation : MonoBehaviour {
    // Use this for initialization
    public enum _trans{position,rotation};
    public _trans _t;
    public float _limitMin=-180;
    public float _limitMax=180;
    float _positionX;
    float _rotationY;
    float _depth;
    [HideInInspector]
    public Transform _parentTran;
    void Start () {
        SensorHelper.ActivateRotation();
        Sensor.Activate(Sensor.Type.Orientation);
        SensorHelper.TryForceRotationFallback(RotationFallbackType.OrientationAndAcceleration);
        _parentTran=transform.parent;
        _depth=Mathf.Floor(_parentTran.transform.position.z)/10;
        Debug.Log(_depth);
    }
        // activate GUI
    
    // Update is called once per frame
    void Update () {
        if(_t==_trans.position){
            onPosition();
        }else if(_t==_trans.rotation){
            onRotation();
        }
    }
    void onPosition(){
        _positionX+=(Mathf.Floor(SensorHelper.rotation.z*10)*_depth-transform.localPosition.x)/10;
        if(_positionX>_limitMax){
            _positionX=_limitMax;
        }else if(_positionX<_limitMin){
            _positionX=_limitMin;
        }
        transform.localPosition =new Vector3(_positionX,0,0);
        
    }
    void onRotation(){
        _rotationY+=(Mathf.Floor(SensorHelper.rotation.z*10)/10*_depth-transform.localRotation.y)/10;
        if(_rotationY>_limitMax){
            _rotationY=_limitMax;
        }else if(_rotationY<_limitMin){
            _rotationY=_limitMin;
        }
        transform.localRotation =new Quaternion(0,_rotationY,0,1);
    }
    void OnGUI(){
        GUILayout.Label(""+SensorHelper.rotation.z);
        GUILayout.Label(""+Mathf.Floor(SensorHelper.rotation.z*10)/10);
    }
}

 

posted @ 2013-11-25 09:20  古刹红罗  阅读(225)  评论(0)    收藏  举报