直接上代码:
#if UNITY_ANDROID && !UNITY_EDITOR
#define ANDROID
#endif
#if UNITY_IPHONE && !UNITY_EDITOR
#define IPHONE
#endif
using UnityEngine;
using UnityEngine.EventSystems;
/// <summary>
/// 移动端相机控制器
/// </summary>
public class CameraCtrl : MonoBehaviour
{
#region PublicMember公有成员
// 主角
public Transform target;
#endregion
#region PrivateMember 私有成员
// 缩放系数
private float distance = 10f;
// 左右滑动移动速度
private float xSpeed = 90.0f;
private float ySpeed = 40.0f;
// 缩放限制系数
private float yMinLimit = -10;
private float yMaxLimit = 60;
// 摄像头的位置
private float x = 0.0f;
private float y = 1.5f;
// 记录上一次手机触摸位置判断用户是在做放大还是缩小手势
private Vector2 oldPosition1 = new Vector2(0, 0);
private Vector2 oldPosition2 = new Vector2(0, 0);
private ActualOperationModule m_ActualOperationModule;
private PracticeOperationModule m_PracticeOperationModule;
#endregion
#region MonoBehaviour脚本生命周期函数
#region Start
//初始化游戏信息设置
void Start()
{
//Debug.Log(oldPosition1);
Vector3 angles = transform.eulerAngles;
x = angles.y;
y = angles.x;
m_ActualOperationModule = RootManager.Instance.ModuleManager.GetModule<ActualOperationModule>();
m_PracticeOperationModule= RootManager.Instance.ModuleManager.GetModule<PracticeOperationModule>();
}
#endregion
#region Update
&

本文提供了一个适用于Android和iOS的Unity相机控制器实现,通过代码展示了如何处理触摸事件,包括单指移动和双指缩放,以实现流畅的移动端相机操作。
最低0.47元/天 解锁文章
224

被折叠的 条评论
为什么被折叠?



