Unreal材质制作数字、材质显示数字、通过序列帧显示数字。

是一个需求、想做一个朝向摄像机的数字、并不像通过UMG消耗太多性能,就用材质写了这么一个东西。

主要用于转移cup的消耗制作的

先看内容、用了两个自定义节点和一个自定义函数,(其实可以都用函数、有很大的优化空间)

首先在输入数字后进行拆分、目前最大支持4位数字,基本满足很多东西了。(可以进行继续扩展、根据需求能继续拆分)

float4 AndNum;
AndNum.x = floor(InputNum/1000);
AndNum.y = floor(InputNum/100-AndNum.x*10);
AndNum.z = floor(InputNum/10-AndNum.x*100-AndNum.y*10);
AndNum.w = floor(InputNum-AndNum.x*1000-AndNum.y*100-AndNum.z*10);
return AndNum;

把输入进来的数字进行按分位拆分,

拆分后用Mask 进行不同图片的读取和显示

是否显示主要是判断首位是否为0

float4 Num = float4(1.0f, 1.0f, 1.0f,1.0f);
if(saturate(InputNum.x)<1)
{
	Num.x = 0;
	if(saturate(InputNum.y)<1)
	{
		Num.y = 0;
		if(saturate(InputNum.z)<1)
		{
			Num.z = 0;
			if(saturate(InputNum.w)<1)
			{
				Num.w = 0;
			}
		}
	}
}
return Num;

显示的内容在材质函数中,材质函数中主要做了一把输入进来的数字 进行读取图片中对应的位置、然后根据输入进来是否应该显示,显示在第几位等。

主要是通过系统的函数FlipBook 制作的。输出后进开始进行拼装。

当然要注意有A通道的就需要进行添加A通道了、这里我就提前添加的A通道,

最后就能显示出想要的效果了。

最后补充一个小东西、测试拆分是否正确的!

float OutNum = InputLocation.w+InputLocation.z*10+InputLocation.y*100+InputLocation.x*1000;
return OutNum;

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值