1 Star 0 Fork 2

ganshuangfeng/Damage Num VFX

forked from 洪镇津/Damage Num VFX 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
DamageNumTest.cs 2.29 KB
一键复制 编辑 原始数据 按行查看 历史
洪镇津 提交于 2025-03-01 11:09 +08:00 . 初始
using System.Collections;
using UnityEngine;
using UnityEngine.VFX;
namespace IOMB2.Assets.Scripts._1_Test
{
public class DamageNumTest : MonoBehaviour
{
[SerializeField] VisualEffect vfx;
[SerializeField] int spawnNumCountPerFrame;// 每帧生成数量
[SerializeField] Vector2 damageNumRange;// 数字大小范围
[SerializeField] float spawnCoordRange;// 数字随机范围
[SerializeField] Color[] colors;
GraphicsBuffer damageNumBuffer;
GraphicsBuffer colorBuffer;
Vector4[] damageNums;
void Start()
{
damageNumBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, spawnNumCountPerFrame, 16);// Vertor4 4Byte * 4
damageNums = new Vector4[spawnNumCountPerFrame];
colorBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, colors.Length, 16);
colorBuffer.SetData(colors);
vfx.SetGraphicsBuffer("DamageData", damageNumBuffer);
vfx.SetGraphicsBuffer("ColorData", colorBuffer);
}
private void OnDestroy()
{
damageNumBuffer?.Release();
colorBuffer?.Release();
}
// Update is called once per frame
void Update()
{
Vector2 minCoord = Vector2.zero;
Vector2 maxCoord = new Vector2(spawnCoordRange, spawnCoordRange);
for (int i = 0; i < spawnNumCountPerFrame; i++)
{
float x = UnityEngine.Random.Range(minCoord.x, maxCoord.x);
float y = UnityEngine.Random.Range(maxCoord.y, minCoord.y);
float num = UnityEngine.Random.Range(damageNumRange.x, damageNumRange.y);// 游戏中就是设置实际的伤害值了.现在这里随机
float colorIndex = UnityEngine.Random.Range(0, colors.Length);// 指定数字的颜色索引
damageNums[i] = new Vector4(x, y, num, colorIndex);
}
damageNumBuffer.SetData(damageNums);
vfx.SetInt(countID, damageNums.Length);// Count是指定此次要生成的数字粒子数量,正常游戏过程中每帧的数字并不一样,在测试这里是一样的
vfx.Play();
}
int countID = Shader.PropertyToID("Count");
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/GanShuangFeng/damage-num-vfx.git
git@gitee.com:GanShuangFeng/damage-num-vfx.git
GanShuangFeng
damage-num-vfx
Damage Num VFX
master

搜索帮助