本文主要是介绍Unity实战案例 2D小游戏HappyGlass(模拟水珠),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本案例素材和教程都来自Siki学院,十分感谢教程中的老师
本文仅作学习笔记分享交流,不作任何商业用途
预制体
在这个小案例中,水可以做成圆形但是带碰撞体,碰撞体比图形小一圈,顺便加上Trail renderer组件
材质
将碰撞材质的friction为0,bonciness可以按照需要修改
脚本
生成水珠的脚本并不难, 只是需要创建大量实例化对象的时候,加一个携程函数不卡一些(事实上,水的预制体如果太小的话,还是会卡,所以可以对携程函数进一步的优化)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AboutWater : MonoBehaviour
{public GameObject water; public int waterNumber;// Start is called before the first frame updatevoid Start(){this.GetComponent<AudioSource>().Play();StartCoroutine(CreatWater());}// Update is called once per framevoid Update(){}private IEnumerator CreatWater(){for (int i = 0; i < waterNumber; i++){Vector3 pos = new Vector3(Random.Range(transform.position.x-0.02f,transform.position.x + 0.02f),transform.position.y-0.3f,0);Instantiate(water,pos,Quaternion.identity,transform);yield return new WaitForSeconds(0.02f);}}
}
这篇关于Unity实战案例 2D小游戏HappyGlass(模拟水珠)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!