Unity 拾取金币,金币飞跃,金币收集数值滚动显示

拾取金币

一、拾取金币

1.1 鼠标点击在屏幕中发出射线获取碰撞的对象

     if (Input.GetMouseButtonDown(0))
     {
         ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         if (Physics.Raycast(ray, out hit))
         {
             GameObject obj = hit.collider.gameObject;
             if (obj == null)
                 return;
         }
     }

1.2通过上面获取鼠标点击的对象 以及 UI Vector2传给封装的GoldFly脚本

 GoldFly goldFly = GoldFly.CreatGoldFly(obj, new Vector2(788, 500));

二、金币飞跃

飞跃的主要逻辑是使用了Tweener动画插件 如下代码

 Sequence mySequence = DOTween.Sequence();
 Tweener scale = rt.DOScale(Vector3.one, 0.1f).SetEase(Ease.Linear);
 Tweener move = DOTween.To(() => { return rt.anchoredPosition; }, v => { rt.anchoredPosition = v; }, m_TargetPos, 1.5f);
 Tweener alpha = _canvasGroup.DOFade(0, 0.2f);
 mySequence.Append(scale);
// mySequence.AppendInterval(0.5f);
 mySequence.Append(move);
 mySequence.AppendInterval(0.2f);

三、数字滚动

数字滚动

主要是在Update每帧更新m_delta值累计的数值所得

  public int value
  {
      get
      {
          return m_newNum;
      }
      set
      {
          m_newNum = value;

          m_delta = 0.1f;// 数值跳动的大小  越小跳动的越慢

          ShowNum();
      }
  }


 void Update()
 {
     if (m_delta != 0)
     {
         m_num += m_delta;

         if (m_delta > 0)
         {
             if (m_num > m_newNum)
             {
                 m_num = m_newNum;
             }
         }
         else
         {
             if (m_num <= m_newNum)
                 m_num = m_newNum;
         }
         if (m_num == m_newNum)
             m_delta = 0;
         ShowNum();
     }
 }

欢迎下载

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w-白兰地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值