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);
}
}