Unity UGUI系列九 Text TextMeshPro

Unity UGUI系列九 Text TextMeshPro,第1张

参考

[专栏精选]TextMeshPro插件

TextMeshPro使用说明

TextMeshPro中文字体生成和字体材质更换

新一代Unity 文本组件 Text Mesh Pro 系列教程

Unity学习笔记TextMeshPro文档(一)

Unity学习笔记TextMeshPro文档(二)

Unity学习笔记TextMeshPro文档(三)

Unity学习笔记TextMeshPro文档(四)

Unity学习笔记TextMeshPro组件官方文档翻译

首次添加会d出导入必要资源面板,点击IMPORT后,项目Assets文件夹下会生成TextMesh Pro文件夹

UGUI的Text使用了一张字体贴图,Unity把所有需要显示的字符放到了一张图集中,字符的形状是通过像素定义的。当我们放大时,像素不够用就会出现文字变模糊的情况。

TextMesh Pro的Text使用了不同的技术来渲染文字,叫做 Signed Distance Field (后面简称SDF,对该技术感兴趣的同学可以自行搜索一下)。和UGUI类似,这个技术同样需要将字符放到一个图集中,但是不使用像素来代表字符的形状,而使用SDF技术来生成字符的形状。使用这种技术字符在渲染时不会因为缩放而造成字符模糊的情况,总是能够准确的渲染字符的边缘。

TextMesh Pro无法像UGUI Text那样使用动态字体,因为TextMesh Pro需要对字体进行预处理来计算SDF,这部分计算非常耗时。这对于英文字体来说影响不大,一个字体文件或一张贴图包含的信息都很少,但是对于字符非常多的语言如中文就影响很大。 所以对于中文环境建议如下:

推荐 >

让d出框开始不显示,点击按钮后显示。

在Hierarchy面板上新建Image,下面我命名为win,再在上面放置Image和Text组成d出框。

如下图:

建立一个Message脚本:

using SystemCollections;

using SystemCollectionsGeneric;

using UnityEngine;

using UnityEngineUI;

public class Message : MonoBehaviour

{

//点击按钮,显示image

public void Click()

{

gameObjectSetActive(true);

}

}

登录后复制

选中win,将脚本Message拖动到Inspector界面上:

同时将这个框去掉,这样image就不显示了。

选中button按钮,将win拖到如下图所示的地方,其他按照要求进行设置:

这样就可以实现,按钮调出自制d出框的功能了。

家常炸萝卜丸子的做法

精选推荐

广告

unity自定义d出框功能

11下载·0评论

2020年8月25日

点击按钮随机显示一张rar

15下载·0评论

2020年1月14日

Unity学习记录2——点击方块触发UI界面

960阅读·0评论·1点赞

2022年9月19日

Unity UI 设置简易的d窗功能

8328阅读·0评论·7点赞

2019年4月11日

UnityUI同一界面点击不同按钮展示对应的UI面板

2204阅读·1评论·4点赞

2021年7月26日

unity点击按钮d出 *** 作提示界面

7201阅读·0评论·7点赞

2018年10月17日

高清播放机,大全,详情!

精选推荐

广告

unity d窗提示_unity自定义d出框功能

2145阅读·0评论·0点赞

2020年12月19日

Unity实现游戏里鼠标悬停在物体处显示UI提示(介绍、名称等信息)的一种方法(可配置的xml文件形式)

10W阅读·26评论·14点赞

2022年1月26日

unity实现玩家碰触物体打开提示效果

3259阅读·0评论·1点赞

2021年8月12日

Unity3D实现点击按钮本身获取按钮所包含的文本内容且显示出来

15W阅读·0评论·7点赞

2018年5月30日

Unity点击button显示/隐藏Image方法

10W阅读·4评论·11点赞

2021年6月29日

unity 选中点击一个模块显示一个背景图,再次点击消失,点击其他模块则当前模块背景图消失

916阅读·0评论·1点赞

2020年1月13日

Unity学习笔记——鼠标移动到物品上显示物品名字,点击后显示物品信息

8769阅读·1评论·7点赞

2019年3月14日

unity d出式菜单_Unity实现通用的信息提示框

928阅读·0评论·1点赞

2020年12月21日

Unity3D 点击模型某部分出其属性信息框

10W阅读·14评论·9点赞

2016年5月23日

鼠标触发文本框

10下载·0评论

2012年9月27日

Unity_UGUI_使用image做为按钮

1476阅读·1评论·3点赞

2019年9月11日

Unity3D实现GUI和UGUI按下显示文本

为了实现交互,我们采用的是简单的函数相互调用。如果我们在Unity3D中想调用Android代码,那么可以在脚本文件C#中这样写:

AndroidJavaClass jc = new AndroidJavaClass("comunity3dplayerUnityPlayer"); AndroidJavaObject activity = jcGetStatic<AndroidJavaObject>("currentActivity"); activityCall("UnlockGame")

第一行代码构造了"comunity3dplayerUnityPlayer"类的一个对象,然后获取了本类的静态成员"currentActivity",取得了activity就可以调用Android代码了(如果你在Unity导出的Eclipse工程中查看unity-classjar这个文件中的类,你会发现comunity3dplayer这个package下就有UnityPlayerclass这个类,这个类中有个currentActivity)。这个UnlockGame函数是简单的成员方法,一般直接写在MainActivity中,也就是说Android代码中必须要有UnlockGame这个函数,然后才能调用;而"comunity3dplayerUnityPlayer"和"currentActivity"都是默认的参数。

如果要在Android工程中调用Unity3D中的方法,我们需要新建一个Android工程。可以这样写java代码:

UnityPlayerUnitySendMessage("AndroidManager", "AndroidCallBackUnlockGame", "");

这里调用了Unity3D中"AndroidCallBackUnlockGame"这个方法,最终激活了游戏。第一个参数表示Unity3D中某个gameObject,第二个参数是这个gameObject上的脚本中的某个方法,第三个参数是这个方法的参数。

上面只是讲述了交互的基本原理,下面是详细步骤。

(1)在Unity3D中创建脚本,如上面第一段代码所示,加入调用Android函数的代码;如果Android要调用C#代码,也要写下被Android代码回调的C#函数。然后,把Unity项目导出为Android工程即可。这里需要注意下图红色部分,其中Bundle Identifier就是导出的Android工程的包名。

(2)打开Eclipse,导入工程,选择import->Existing Android Code Into Workspace,最好把Copy Into WorkSpace选项也选上,这个工程通常叫做“UnityPlayerProxyActivity”。导入工程后,我们可以直接运行这个工程了。但这里是为了与Android代码交互,所以还不能这样做。通常的方法是,我们新建一个Android Application Project,包名必须与导入的工程包名相同;然后把导入的工程作为新工程的Library Project,在工程的Properties里设置

(3)将导入的Unity工程assets目录里的bin和libs目录(新版的没有lib目录)拖放到新工程的assets目录里,即移动资源位置而已。说明一点,新建的Android工程作为了主工程,导入的Unity工程作为了Library Project,它们的Assets和Res资源将会最终合并在一起,但主工程必须要添加Library工程中所有需要的配置信息,也就是AndroidManifestxml中的内容。这里还可能遇到资源ID冲突的现象,优先级高的主工程将覆盖优先级低的工程。

(4)好了,现在我们有两个工程,一个是新建的,一个是从Unity3D中导入的。这里必须学点Android开发的基础知识,onCreate函数是入口函数,其它的自学吧。想在Android里调用Unity3D代码,就用本文开头的第二段代码即可。通常,我们在新工程里创建一个Activity,在AndroidManifestxml里进行设置要启动的Activity。假设要启动的是MainActivity,那么对于MainActivity这个类,我们要让它继承UnityPlayerActivity这个类,然后在Oncreate里调用superonCreate即可。然后,运行新工程,我们的Unity3D游戏也跟着启动了。我们的主工程是新建的,没有设置任何视图,之所以启动了游戏,是因为继承了UnityPlayerActivity这个类,然后调用superonCreate通过父类启动了游戏。

using UnityEngineUI;

string textValue = gameObjectGetCompenenet<InputField>()text;

建一个脚本 复制上面的代码 把脚本放在InputField对象上 textValue 里就是输入文本框的字符串

以上就是关于Unity UGUI系列九 Text TextMeshPro全部的内容,包括:Unity UGUI系列九 Text TextMeshPro、请问下unity如何从一个物体的脚本中获得另一个物体的组件、unity点击图片不d出原图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9661233.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存