using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GyroscopeCameraRotation : BasicCameraRotation
{
private float x;
private float y;
public bool gyroEnabled = false;
readonly float sensitivity = 50.0f;
private Gyroscope gyro;
void Start()
{
gyroEnabled = EnableGyro();
}
private bool EnableGyro()
{
if (SystemInfo.supportsGyroscope)
{
gyro = Input.gyro;
gyro.enabled = true;
return true;
}
return false;
}
void Update()
{
if (gyroEnabled)
{
GyroRotation();
}
}
void GyroRotation()
{
x = Input.gyro.rotationRate.x;
y = Input.gyro.rotationRate.y;
float xFiltered = FilterGyroValues(x);
RotateUpDown(xFiltered * sensitivity);
float yFiltered = FilterGyroValues(y);
RotateRightLeft(yFiltered * sensitivity);
}
float FilterGyroValues(float axis)
{
if (axis < -0.1 || axis > 0.1)
{
return axis;
}
else
{
return 0;
}
}
}
public class SpinWheelScript : BasicCameraRotation
{
Vector3 firstPoint;
float sensitivity = 2.5f;
void Update()
{
TouchRotation();
}
void TouchRotation()
{
if (Input.touchCount > 0)
{
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
firstPoint = Input.GetTouch(0).position;
}
if (Input.GetTouch(0).phase == TouchPhase.Moved)
{
Vector3 secondPoint = Input.GetTouch(0).position;
float x = FilterGyroValues(secondPoint.x - firstPoint.x);
RotateRightLeft(x * sensitivity);
float y = FilterGyroValues(secondPoint.y - firstPoint.y);
RotateUpDown(y * -sensitivity);
firstPoint = secondPoint;
}
}
}
float FilterGyroValues(float axis)
{
float thresshold = 0.5f;
if (axis < -thresshold || axis > thresshold)
{
return axis;
}
else
{
return 0;
}
}
}
public class BasicCameraRotation : MonoBehaviour
{
//Rotasi ke Atas & Bawah
public void RotateUpDown(float axis)
{
transform.RotateAround(transform.position, transform.right, -axis * Time.deltaTime);
}
//Rotasi Ke Kanan & Kiri
public void RotateRightLeft(float axis)
{
transform.RotateAround(transform.position, Vector3.up, -axis * Time.deltaTime);
}
}
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GyroscopeCameraRotation : BasicCameraRotation
{
private float x;
private float y;
public bool gyroEnabled = false;
readonly float sensitivity = 50.0f;
private Gyroscope gyro;
void Start()
{
gyroEnabled = EnableGyro();
}
private bool EnableGyro()
{
if (SystemInfo.supportsGyroscope)
{
gyro = Input.gyro;
gyro.enabled = true;
return true;
}
return false;
}
void Update()
{
if (gyroEnabled)
{
GyroRotation();
}
}
void GyroRotation()
{
x = Input.gyro.rotationRate.x;
y = Input.gyro.rotationRate.y;
float xFiltered = FilterGyroValues(x);
RotateUpDown(xFiltered * sensitivity);
float yFiltered = FilterGyroValues(y);
RotateRightLeft(yFiltered * sensitivity);
}
float FilterGyroValues(float axis)
{
if (axis < -0.1 || axis > 0.1)
{
return axis;
}
else
{
return 0;
}
}
}
public class SpinWheelScript : BasicCameraRotation
{
Vector3 firstPoint;
float sensitivity = 2.5f;
void Update()
{
TouchRotation();
}
void TouchRotation()
{
if (Input.touchCount > 0)
{
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
firstPoint = Input.GetTouch(0).position;
}
if (Input.GetTouch(0).phase == TouchPhase.Moved)
{
Vector3 secondPoint = Input.GetTouch(0).position;
float x = FilterGyroValues(secondPoint.x - firstPoint.x);
RotateRightLeft(x * sensitivity);
float y = FilterGyroValues(secondPoint.y - firstPoint.y);
RotateUpDown(y * -sensitivity);
firstPoint = secondPoint;
}
}
}
float FilterGyroValues(float axis)
{
float thresshold = 0.5f;
if (axis < -thresshold || axis > thresshold)
{
return axis;
}
else
{
return 0;
}
}
}
public class BasicCameraRotation : MonoBehaviour
{
//Rotasi ke Atas & Bawah
public void RotateUpDown(float axis)
{
transform.RotateAround(transform.position, transform.right, -axis * Time.deltaTime);
}
//Rotasi Ke Kanan & Kiri
public void RotateRightLeft(float axis)
{
transform.RotateAround(transform.position, Vector3.up, -axis * Time.deltaTime);
}
}