当前位置:   article > 正文

Unity初级案例-愤怒的小鸟:六:17把粒子系统显示在UI之前+18让星星一颗一颗的显示+19添加暂停动画_unity ui 粒子特效在ui前

unity ui 粒子特效在ui前

目录

一.目的

1.想知道:愤怒的小鸟:如何制作

2.做好学习笔记,方便下次查看

二.参考

1.SIKI学院

三.注意

1.版本

操作:1:17把粒子系统显示在UI之前

1.知识介绍

1.设置 把粒子系统显示在UI之前

操作:2:18让星星一颗一颗的显示

1.移除相机 

1.代码:星星出现

1.运行结果:成功

操作:3:19添加暂停动画

1.解决报错问题

1.代码:Bird

1.解决bug:完成

1.将鸟和猪作为预制件

1.制作暂停按钮

1.制作暂停UI界面

1.制作:暂停UI出现的动画

1.制作:回到游戏的动画

 1.按钮图标添加按钮组件


一.目的

1.想知道:愤怒的小鸟:如何制作

2.做好学习笔记,方便下次查看

二.参考

1.SIKI学院

登录 - SiKi学院 - 生命不息,学习不止!

good:学习的网址

三.注意

1.版本

  1. Unity2017.2.0f3
  2. VS2019
  3. UnityHUB 2.5.6

操作:1:17把粒子系统显示在UI之前

1.知识介绍

1.设置 把粒子系统显示在UI之前

操作:2:18让星星一颗一颗的显示

1.移除相机 

1.代码:星星出现

1.运行结果:成功

操作:3:19添加暂停动画

1.解决报错问题

1.代码:Bird

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. /// <summary>
  5. /// 【Author:xzy;Time:2021-12-28】
  6. /// Function:小鸟身上的代码
  7. /// </summary>
  8. public class Bird : MonoBehaviour
  9. {
  10. /// <summary>bool:是否点击</summary>
  11. private bool bIsClick = false;
  12. /// <summary>float:计算鸟和弹弓的距离的最大值</summary>
  13. public float fMaxdis = 3;
  14. /// <summary>SpringJoint2D:鸟身上弹簧的组件</summary>
  15. [HideInInspector]
  16. public SpringJoint2D sp;
  17. /// <summary>Rigidbody2D:鸟身上的物理组件</summary>
  18. [HideInInspector]
  19. private Rigidbody2D rg;
  20. /// <summary>Transform:弹弓右边的位置,目的:方便计算鸟和弹弓的距离</summary>
  21. public Transform rightPos;
  22. /// <summary>Transform:弹弓左边的位置,目的:方便划线【课程08弹弓画线操作:添加】</summary>
  23. public Transform leftPos;
  24. /// <summary>LineRenderer:弹弓右边的划线组件【课程08弹弓画线操作:添加】</summary>
  25. public LineRenderer right;
  26. /// <summary>LineRenderer:弹弓左边的划线组件【课程08弹弓画线操作:添加】</summary>
  27. public LineRenderer left;
  28. /// <summary>GameObject:特效【10游戏逻辑的判定,实现多只小鸟的飞出:添加】</summary>
  29. public GameObject boom;
  30. /// <summary>TestMyTrail:拖尾【12 - 添加小鸟飞出的拖尾效果:添加】</summary>
  31. private TestMyTrail myTrail;
  32. /// <summary>bool:是否可以移动【19添加暂停动画:添加】</summary>
  33. private bool bIsCanMove = true;
  34. private void Awake()
  35. {
  36. sp = this.GetComponent<SpringJoint2D>();//获取小鸟的弹簧组件
  37. rg = this.GetComponent<Rigidbody2D>();//获取小鸟身上的物理组件
  38. myTrail = GetComponent<TestMyTrail>();//获取组件【12 - 添加小鸟飞出的拖尾效果:添加】
  39. }
  40. /// <summary>
  41. ///【Author:xzy;Time:2021-12-28】
  42. /// Function: 鼠标按下
  43. /// </summary>
  44. private void OnMouseDown()
  45. {
  46. if (bIsCanMove)//【19添加暂停动画:添加】
  47. {
  48. bIsClick = true;
  49. rg.isKinematic = true;//按下小鸟,让其物理组件的动力学开启,从dynamic到kinematic
  50. }
  51. }
  52. /// <summary>
  53. ///【Author:xzy;Time:2021-12-28】
  54. /// Function: 鼠标抬起
  55. /// </summary>
  56. private void OnMouseUp()
  57. {
  58. if (bIsCanMove)//【19添加暂停动画:添加】
  59. {
  60. bIsClick = false;
  61. rg.isKinematic = false;//松开小鸟,让其物理组件的动力学关闭
  62. Invoke("Fly", 0.1f);//定时器:唤醒 小鸟飞出的逻辑
  63. right.enabled = false;//禁用画线组件【11解决重复划线和小鸟轮换速度突然变大的问题:添加】
  64. left.enabled = false;
  65. bIsCanMove = false;//【19添加暂停动画:添加】
  66. }
  67. }
  68. private void Update()
  69. {
  70. if (bIsClick)
  71. {
  72. //鼠标按下,进行位置的跟随,屏幕坐标转换为世界坐标
  73. transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
  74. transform.position += new Vector3(0, 0, -Camera.main.transform.position.z);
  75. //进行位置限制
  76. if (Vector3.Distance(transform.position, rightPos.position) > fMaxdis)
  77. {
  78. Vector3 pos = (transform.position - rightPos.position).normalized; //单位化向量:获取方向,鸟的向量减去右边弹弓的位置的向量
  79. pos *= fMaxdis; //最大长度的向量
  80. transform.position = pos + rightPos.position;
  81. }
  82. Line();
  83. }
  84. }
  85. /// <summary>
  86. ///【Author:xzy;Time:2021-12-29】
  87. /// Function: 处理松开小鸟飞出的逻辑
  88. /// </summary>
  89. void Fly()
  90. {
  91. myTrail.StartTrail();//开始拖尾【12 - 添加小鸟飞出的拖尾效果:添加】
  92. sp.enabled = false;//松开小鸟,取消掉弹簧组件,小鸟就会飞出
  93. Invoke("Next", 5);//定时器:一段时候后调用Next方法
  94. }
  95. /// <summary>
  96. ///【Author:xzy;Time:2021-12-29】【课程08弹弓画线操作:添加】
  97. /// Function: 画线
  98. /// </summary>
  99. void Line()
  100. {
  101. right.enabled = true; //开启画线组件【11解决重复划线和小鸟轮换速度突然变大的问题:添加】
  102. left.enabled = true;
  103. right.SetPosition(0, rightPos.position);//画线:右边的起始位置:右边弹弓位置
  104. right.SetPosition(1, this.transform.position);//画线:右边的终点位置:小鸟位置
  105. left.SetPosition(0, leftPos.position);
  106. left.SetPosition(1, this.transform.position);
  107. }
  108. /// <summary>
  109. ///【Author:xzy;Time:2021-12-29】【10游戏逻辑的判定,实现多只小鸟的飞出:添加】
  110. /// Function: 下一只小鸟被弹
  111. /// </summary>
  112. private void Next()
  113. {
  114. GameManager._instance.birds.Remove(this);//移除列表中此时小鸟元素
  115. Destroy(this.gameObject);//摧毁这个小鸟
  116. Instantiate(boom, this.transform.position, Quaternion.identity);//产生特效
  117. GameManager._instance.NextBird();//下一只小鸟出现
  118. }
  119. /// <summary>
  120. ///【Author:xzy;Time:2021-12-29】【12 - 添加小鸟飞出的拖尾效果:添加】
  121. /// Function: 碰撞检测
  122. /// </summary>
  123. private void OnCollisionEnter2D(Collision2D collision)
  124. {
  125. myTrail.ClearTrail();//清除拖尾【12 - 添加小鸟飞出的拖尾效果:添加】
  126. }
  127. }

1.解决bug:完成

1.将鸟和猪作为预制件

鸟改名字为redBird

1.制作暂停按钮

改名字+添加按钮组件

 

1.制作暂停UI界面

然后修改名字,新建一个Image作为gb,弄成半透明

1.制作:暂停UI出现的动画

  1. 注意:在动画制作时候直接可以选择哪个对象进行处理

 

1.制作:回到游戏的动画

 

 1.按钮图标添加按钮组件

 

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

闽ICP备14008679号