Unity实战问题-WebGL问题集锦第二发

public Font this_font; //字体样式,方便显示中文

void Start () {

isShowTip = false;

}

void Update () {

}

//这段注释的 是 3D物体的检测

//private void OnMouseEnter()

//{

// Debug.Log(“鼠标位置”);

// isShowTip = true;

//}

//private void OnMouseExit()

//{

// isShowTip = false;

//}

private void OnGUI()

{

if (isShowTip) {

//Debug.Log(“鼠标位置===”);

GUIStyle style1 = new GUIStyle();

style1.fontSize = 20;

style1.normal.textColor = Color.white;

//style1.normal.textColor = new Color(0,0,0); //可以自定义任何颜色

style1.font = this_font; //自定义字体样式

GUI.Label(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y-20, 140, 60), name,style1);

}

}

//下面是 2D UI 内容的鼠标划入检测

public void OnPointerExit(PointerEventData eventData)

{

isShowTip = false;

name = “”;

}

public void OnPointerEnter(PointerEventData eventData)

{

isShowTip = true;

name = gameObject.transform.GetChild(0).GetComponent ().text;

}

}

Q5:在Q4过程中,代码中控制字体样式,字体颜色,使用GUIStyle

Q6: Button组件设置不可点击且变灰,发现单纯的颜色按钮是可以的,如果是Button是精灵的就不行,目前只能是恰当的时机替换精灵  如设置不可点击enabled=false的时候把精灵替换成灰色图;反之一样

Q7: 如果项目中Text组件多,且是中文,一个一个修改字体样式肯定劳神,  可一键替换字体样式资源,属于自定义编辑器的知识(EditorWindow)  注:过程中如果字体样式多样化 一定要注意,别全替换了;

using UnityEngine;

using System.Collections;

using UnityEditor;

using UnityEditor.SceneManagement;

using UnityEngine.UI;

public class ChangeFontWindow : EditorWindow

{

[MenuItem(“Tools/更换字体”)]

public static void Open()

{

EditorWindow.GetWindow(typeof(ChangeFontWindow));

}

Font toChange;

static Font toChangeFont;

FontStyle toFontStyle;

static FontStyle toChangeFontStyle;

void OnGUI()

{

toChange = (Font)EditorGUILayout.ObjectField(toChange, typeof(Font), true, GUILayout.MinWidth(100f));

toChangeFont = toChange;

toFontStyle = (FontStyle)EditorGUILayout.EnumPopup(toFontStyle, GUILayout.MinWidth(100f));

toChangeFontStyle = toFontStyle;

if (GUILayout.Button(“更换”))

{

Change();

}

}

public static void Change()

{

Transform canvas = GameObject.Find(“Canvas”).transform;

if (!canvas)

{

Debug.Log(“NO Canvas”);

return;

}

Transform[] tArray = canvas.GetComponentsInChildren();

for (int i = 0; i < tArray.Length; i++)

{

Text t = tArray[i].GetComponent ();

if (t)

{

//这个很重要,博主发现如果没有这个代码,unity是不会察觉到编辑器有改动的,自然设置完后直接切换场景改变是不被保存

//的 如果不加这个代码 在做完更改后 自己随便手动修改下场景里物体的状态 在保存就好了

Undo.RecordObject(t, t.gameObject.name);

t.font = toChangeFont;

t.fontStyle = toChangeFontStyle;

//相当于让他刷新下 不然unity显示界面还不知道自己的东西被换掉了 还会呆呆的显示之前的东西

EditorUtility.SetDirty(t);

}

}

Debug.Log(“Succed”);

}

}

使用把这个c#放到你的项目中,最后在tool中打开     搞定!

暂时问题总结到这里!


关注我的微信公众号,随时都有技术,游戏,认知,职场/发展的优质文章推送!

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 15
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值