- 最后登录
- 2021-7-6
- 注册时间
- 2012-12-27
- 阅读权限
- 90
- 积分
- 76145
- 纳金币
- 53488
- 精华
- 316
|
来自:夏之末
这个脚本你在别的地方直接new这个类就可以用了,里边可以传递一些参数,当你不填写参数时它是默认的,参数可以是你想输出的话,输出的字体大小,以及一个回调,当你new这个类的时候,会自动生成一个带有Button组件的文本框,你点击这个UI后会关闭产生的文本框并执行你想调用的回调。这个脚本主要就是利用构造函数,举个例子就像Unity的GameObject一样,你可new一个空物体并且往里边传递它名字的参数。话不再多说了,贴上代码。- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine.Events;
- using UnityEngine.UI;
- using UnityEngine;
- using System;
- public class LogError : MonoBehaviour
- {
- public LogError(string error = "游戏出现错误", int fontsize = 60, UnityAction MyEvent = null)
- {
- GameObject go = new GameObject("Log");
- GameObject Canvas = GameObject.Find("Canvas");
- if (Canvas == null)
- {
- Destroy(this);
- return;
- }
- go.transform.SetParent(Canvas.transform);
- go.transform.localPosition = Vector3.zero;
- go.transform.localScale = Vector3.one;
- RectTransform rectTransform = go.GetComponent<RectTransform>();
- if (rectTransform == null)
- {
- rectTransform = go.AddComponent<RectTransform>();
- }
- Text text = go.AddComponent<Text>();
- text.text = "error: " + error;
- text.color = Color.red; ;
- Font font = Font.CreateDynamicFontFromOSFont("OSFont", 11);
- text.fontStyle = FontStyle.Normal;
- rectTransform.sizeDelta = new Vector2(800, 200);
- text.font = font;
- text.alignment = TextAnchor.MiddleCenter;
- text.fontSize = fontsize;
- Button button = go.AddComponent<Button>();
- if (MyEvent != null)
- {
- button.onClick.AddListener(MyEvent);
- }
- button.onClick.AddListener(() => { Destroy(go); Destroy(this); });
-
- }
- }
复制代码 |
|