unity TouchCamera相机触摸控制旋转、缩放、平移

本文介绍如何通过Unity的TouchCamera脚本,实现相机在非正交视图下的选中、缩放和旋转,以及在正交视图下的缩放和平移功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

脚本挂在相机下,相机在非正交下有选中和缩放功能;相机在正交下有缩放和平移功能。

using UnityEngine;
public class TouchCamera : MonoBehaviour
{
    public bool canPan = true;
    public bool canScale = true;

    public MouseSettings mouseSettings = new MouseSettings(0, 10, 10);

    public Range angleRange = new Range(0, 90);
    public Range distanceRange = new Range(1, 1000);

    //around center
    public Transform target;

    private Vector2 oldPos1;
    private Vector2 oldPos2;

    private bool m_isSinleFinger;

    private Vector3 targetPan;
    private Vector3 currentPan;

    private Vector2 targetAngles;
    private Vector2 currentAngles;

    private float targetDistance;
    private float currentDistance;

    private bool getCurrentDA = true;

    //Damper(阻尼) for move and rotate
    [Range(0, 10)]
    private float damper = 2;

    void Start()
    {
        GameObject camTargetObj = GameObject.Find("Main Camera Target");
        if (camTargetObj == null)
            camTargetObj = new GameObject("Main Camera Target");
        target = camTargetObj.transform;

        currentAngles = targetAngles = transform.eulerAngles;
        currentPan = targetPan = transform.position;
        currentDistance = targetDistance = Vector3.Distance(transform.position, target.posit
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值