当前位置:   article > 正文

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

unity 金币飞行

拾取金币

一、拾取金币

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

  1. if (Input.GetMouseButtonDown(0))
  2. {
  3. ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  4. if (Physics.Raycast(ray, out hit))
  5. {
  6. GameObject obj = hit.collider.gameObject;
  7. if (obj == null)
  8. return;
  9. }
  10. }

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

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

二、金币飞跃

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

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

三、数字滚动

数字滚动

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

  1. public int value
  2. {
  3. get
  4. {
  5. return m_newNum;
  6. }
  7. set
  8. {
  9. m_newNum = value;
  10. m_delta = 0.1f;// 数值跳动的大小 越小跳动的越慢
  11. ShowNum();
  12. }
  13. }
  14. void Update()
  15. {
  16. if (m_delta != 0)
  17. {
  18. m_num += m_delta;
  19. if (m_delta > 0)
  20. {
  21. if (m_num > m_newNum)
  22. {
  23. m_num = m_newNum;
  24. }
  25. }
  26. else
  27. {
  28. if (m_num <= m_newNum)
  29. m_num = m_newNum;
  30. }
  31. if (m_num == m_newNum)
  32. m_delta = 0;
  33. ShowNum();
  34. }
  35. }

欢迎下载

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/496939
推荐阅读
相关标签
  

闽ICP备14008679号