43 lines
968 B
C#
43 lines
968 B
C#
using Games.GlobeDefine;
|
|
using Games.Scene;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
public class ProcessCamera
|
|
{
|
|
public event UnityAction<Vector2> onCameraAngle;
|
|
public event UnityAction<float> onCameraDistance;
|
|
|
|
public void MoveCamera(Vector2 delta)
|
|
{
|
|
if (SceneLogic.CameraController != null)
|
|
{
|
|
var dpi = GetDeviceDpi();
|
|
if (onCameraAngle != null)
|
|
onCameraAngle(delta / dpi);
|
|
|
|
}
|
|
}
|
|
|
|
public void ScaleCamera(float scale)
|
|
{
|
|
if (SceneLogic.CameraController != null)
|
|
{
|
|
var dpi = GetDeviceDpi();
|
|
if (onCameraDistance != null)
|
|
onCameraDistance(scale / dpi);
|
|
}
|
|
}
|
|
|
|
private float GetDeviceDpi()
|
|
{
|
|
#if UNITY_EDITOR || UNITY_STANDALONE
|
|
return GlobeVar.defaultDpi;
|
|
#else
|
|
var dpi = Screen.dpi;
|
|
if (dpi <= 0f)
|
|
dpi = GlobeVar.defaultDpi;
|
|
return dpi;
|
|
#endif
|
|
}
|
|
} |