UI上滑动旋转指定对象

挂载在UI上的脚本:

using UnityEngine;
using DG.Tweening;
using UnityEngine.EventSystems;

/// <summary>
/// 此脚本挂载在UI上,鼠标在UI上滑动时旋转指定对象
/// </summary>
public class UITouchRotateTarget : MonoBehaviour, IDragHandler
{
    /// <summary>
    /// 要旋转的对象
    /// </summary>
    public Transform target = null;
    /// <summary>
    /// 旋转速度(3-5效果最佳)
    /// </summary>
    public float speed = 5.0f;

    //DOTween过渡时间(为1时效果最佳)
    private float m_time = 1.0f;
    //缓存Vector3,避免频繁New
    private Vector3 m_rot = Vector3.zero;

    public void OnDrag(PointerEventData eventData)
    {
        if (target == null) return;
        float y = eventData.delta.x;
        m_rot.y = -y * speed;
        target.DOLocalRotate(m_rot, m_time, RotateMode.LocalAxisAdd).SetEase(Ease.OutCubic);
    }

}

效果:

GIF 2022-10-25 20-29-50.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容