Unity使用Hotween动画插件遇到的坑

在开发手机游戏时,为了实现界面菜单在拖动后自动定位到中间,作者尝试在OnEndDrag方法中使用Hotween进行定位。然而,起初在对RectTransform.anchoredPosition的x轴进行操作时,发现动画效果不正确。经过研究,作者发现应该使用localPosition来进行定位,因为锚点的调整必须基于localPosition坐标系。这次经验教训使作者对Hotween的理解更加深入。

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

在游戏的界面菜单需要每次滑动后都定位到中间位置,是界面可以展示3个菜单。一想很简单,实现OnEndDrag方法后用Hotween来定位到之前的位置。

public void OnEndDrag(GameObject go)
    {
        float ToPoint = GetClosestPoint(scrollContent.localPosition.x, new float[] { -540,-896,-1254 });
        Debuger.Log(ToPoint);
        TweenParms parms = new TweenParms();
        parms.Prop("localPosition", new Vector3(ToPoint,scrollContent.localPosition.y, 0));
        parms.Ease(EaseType.Linear);
        HOTween.To(scrollContent, 0.2f, parms);
    }


    public float GetClosestPoint(float point, float[] comparePoints)  //获取最近的定位点
    {
        float closepoint=comparePoints[0];
        float closevalue = Mathf.Abs(Mathf.Abs(comparePoints[0]) - Mathf.Abs(point));
        for(int i=1;i<comparePoints.Length;i++)
        {
            if (Mathf.Abs(Mathf.Abs(comparePoints[i]) - Mathf.Abs(point)) < closevalue)
            {
                closevalue=Mathf.Abs(M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值