散文网站模板,枣强网站建设代理,wordpress拖动实现,徐州建设工程材料检测预约网站第一步骤安装并导入Dotween插件#xff08;也可以不用导入之后直接下载我的安装包#xff09;
官网DOTween - 下载 第二步#xff1a; 制作跳字预制体 建议把最佳适应打开#xff0c;这样就不怕数字太大显示不全了。 第三步#xff1a;创建一个空对象并编写脚本JumpNumbe…第一步骤安装并导入Dotween插件也可以不用导入之后直接下载我的安装包
官网DOTween - 下载 第二步 制作跳字预制体 建议把最佳适应打开这样就不怕数字太大显示不全了。 第三步创建一个空对象并编写脚本JumpNumber 并将脚本拖到空对象上将跳字预制体也拖上去。 这个脚本会接受3个参数位置世界坐标伤害多少是否暴击三个参数。然后在屏幕上生成伤害跳字。
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;public class JumpNumber : MonoBehaviour
{public GameObject Number; // 跳字预制体private Camera mainCamera;//主摄像机//单例模式public static JumpNumber instance;private void Awake(){// 单例模式的简单实现确保JumpNumber在场景中为唯一实例if (instance null){instance this;}else{Destroy(gameObject);}// 自动获取主摄像机mainCamera GameObject.FindWithTag(MainCamera).GetComponentCamera();}//传入目标物体跳字数字是否暴击public void ShowJumpNumber(GameObject behitGameObject, float number, bool crit){if (mainCamera null){Debug.LogError(Main Camera not found!);return;}// 使用目标物体的位置Vector3 worldPosition behitGameObject.transform.position;//将x轴左右偏移一点worldPosition.x Random.Range(-1f, 1f);//世界坐标转屏幕坐标Vector3 screenPosition mainCamera.WorldToScreenPoint(worldPosition);//实例化预制体GameObject numberInstance Instantiate(Number, screenPosition, behitGameObject.transform.rotation);numberInstance.transform.position screenPosition;//查找画布的位置GameObject Canvas GameObject.Find(Canvas);numberInstance.gameObject.transform.SetParent(Canvas.transform);//将浮点型的number转换为整型number (int)number;// 设置为最顶层防止玩家或怪物挡住跳字numberInstance.transform.SetAsLastSibling();numberInstance.GetComponentText().text number.ToString();//区分是否暴击Color color Color.white;//设置字体大小Number.GetComponentText().fontSize 25;if (crit) {//暴击字体颜色color Color.red;//设置字体大小Number.GetComponentText().fontSize 50;}numberInstance.GetComponentText().color color;// 使用 DOTween 让number进行移动从Y0移动到y800,然后销毁//设置一个浮动范围//OnComplete()是动画完成后的回调函数int jumpfloat Random.Range(0, 100);numberInstance.transform.DOMoveY(numberInstance.transform.position.y 100, 0.5f).OnComplete(() Destroy(numberInstance));}
}第4步创建一个2D对象并编写测试脚本加到这个2D对象上 这个测试脚本会在1——100生成随机数并且大于50的时候将会是暴击效果。
using UnityEngine;public class TextJumpNumber : MonoBehaviour
{void Update(){if (Input.GetKeyDown(KeyCode.Space)){int jumpNumbernum Random.Range(1, 101);//生成随机数字bool crit jumpNumbernum 50;//判断是否爆击JumpNumber.instance.ShowJumpNumber(gameObject, jumpNumbernum, crit);}}
}第五步运行游戏按下空格就会看到生成了伤害跳字。 项目包 https://github.com/laozhupeiqia/JumpNumber.git 如果这篇文章对你有帮助欢迎点赞支持哦