问题标签 [unity-ui]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何在 Unity 中使用 GVR 标线指针移动滑块?
ExecuteEvents.Execute(gameObject, new PointerEventData(EventSystem.current), ExecuteEvents.pointerClickHandler);
-当标线指针在滑块上时调用,但滑块位置不变。然后,如果我单击鼠标,滑块会出现在十字线指针处。
为什么会这样?为什么在pointerClickHandler执行后滑块没有移动?请帮忙。
unity3d - Unity 如何在图像周围流动 TextMesh Pro 文本?
Unity 版本: 5.6.5f1 个人版
TextMesh Pro 版本: 1.0.56.0b3
我有一个 TextMesh Pro UI 文本对象,其区域与 UI 图像的区域相交。文字是动态的,但图像永远不会改变。有没有办法让 TextMesh Pro UI 文本在图像周围流动,类似于文本在 HTML/CSS 中环绕到一侧的方式?
下图显示了 Unity 中对象的两个副本。一个对象,由图像所在的红色空间表示,是我目前得到的。文本进入图像的空间。另一个对象,由图像所在的蓝色空间表示,显示了文本正确换行的预期结果。
当前与预期结果:
迄今为止的研究:
如何将图像放入文本中?- 我使用的图像是 UI 图像,而不是文本资源。图像只会像与文本内联一样起作用。
如何在矩形周围环绕文本?, Unity UI 的流畅布局- 这些是我正在寻找的。但是,没有在其中发布任何建议。
我已经探索了使用多个 TextMesh Pro UI 文本对象的想法,每个对象都充当完整文本区域的片段。但是,这与在图像周围环绕文本不同。对于动态文本,如果我从一个文本区域提取内容并将其推送到下一个区域,这将与自动调整大小功能发生冲突并导致字体大小不等。
另一种可能性是我可以一次插入一个字符,检查添加另一个字符是否会导致与图像发生冲突,并添加System.Environment.Newline
以防止这种情况。但是,我担心处理大量文本会带来潜在的性能问题。
TextMesh Pro 文档- TextMesh Pro 文档有一些用于查找自动换行点的工具,但我还没有弄清楚如何实现将其与另一个对象的锚点位置进行比较的方法。
c# - 无法弄清楚如何让 Unity UI 正确缩放
我试图在 Unity 的 UI 上显示一个健康栏,但无法弄清楚如何让缩放正常工作。我需要最左边的值为 0,所以当 currenthealth=0 时,条形消失,当 currenthealth = maxhealth 时,它应该等于 maxhealth。我当前的代码如下。
unity3d - 如何在 Canvas 中对 UI 元素进行排序?
我不明白你如何在 Canvas 内的 Unity 中对 UI 元素 Z-index 进行排序,是按层次顺序排列的吗?我正在尝试在此视频中进行设置屏幕:https ://www.youtube.com/watch?v=-qNo1jloR_k
这很简单,您单击按钮,它将整个面板设置为层次结构中的第一个兄弟。
但这就是我得到的: https ://gyazo.com/cec14f21df2ded191875e6a8cfd9f124
另外,我的游戏面板有一个红色背景,我的图形面板是绿色的,我的声音面板是黄色的。
我可以通过更改面板上的 alpha 来避免这个问题,但想让它与 z 排序一起工作......我似乎无法在 Unity 上理解。
使用统一 2017.1.2 和 .NET 4.6 。
unity3d - 当对象在运行时实例化时,如何使 Unity UI 对象可拖动?
我正在开发一个管理游戏,每个用户在保存文件中都有一些特定的字符。我在面板中实例化这些字符,我希望用户选择其中一张卡片并将其拖动到某个特定点。我可以为已经在场景中的对象制作一个拖动脚本。但是,如果对象是在运行时生成的,如何实现同样的效果呢?我只需要一些想法如何去做。这是我当前拖动 UI 对象的代码。
c# - Raycast 如何与 Unity 的 Canvas UI 元素交互?
我创建了一个从对象(不是主摄像机)拍摄的 Raycast,我希望它能够击中 UI 元素。下面的例子。 例子
橙色轮廓的 UI,灰色大平面是一个测试对象,红色的头放在用户的头上,绿色是我的 raycast 的 DrawRay 附加到眼睛上。我正在努力做到这一点,以便用户查看 UI 按钮并且 raycast 可以点击该按钮。
我一直在玩Graphic raycast,但似乎没有任何效果。灰色平面仍被射线投射击中。我尝试使用 OnPointerEnter,但问题是我的眼睛光线投射不是鼠标/手指触摸,而是第二个指针。任何想法如何使它与 isPointerOverGameObject 或 Graphic Raycaster 或任何其他方法一起工作?或者如何创建第二个将作为眼睛光线投射的指针?当前代码如下。
c# - Unity按钮单击未触发事件
我查看了此处处理相同问题的帖子,但它既没有说明问题所在,也没有解决我的问题。
我在面板中创建了一个带有多个按钮的 Canvas 预制件。我在运行时实例化预制件并抓取Button
面板中的所有对象。然后我onClick()
为调用相同clicked()
方法的所有按钮的事件添加一个监听器
请注意,当我通过代码调用事件时,clicked()
会调用并“单击!” 正确输出到控制台。
但是,单击时没有一个按钮会触发事件。我还注意到 Inspector 中 OnClick 中的 PersistentCalls.Calls 数组在运行时对所有按钮都有 0 个元素。
我在 Windows 10 64 中使用 Unity 2017.4.3f1。
android - 热门决定应该在 unity3d 游戏中选择 xxhdpi、xhdpi、hdpi、mdpi 或 ldpi 的哪个资产包变体,以获得没有像素化的体面 UI?
在统一设计UI的同时。如果我直接以不同的分辨率附加单个 mdpi 图像和文本,则图像/精灵会根据屏幕尺寸进行缩放。但问题是当图像被缩放时,它会显示为像素化吗?
所以我阅读了资产包变体,并尝试通过为不同的分辨率制作不同的包来使用它们。(捆绑包有 xxxhdpi、xxhdpi、xhdpi、hdpi、mdpi 和 ldpi)。
但是我被困在如何为我的游戏运行的设备选择资产包变体。如何Screen.dpi
统一使用来实现这一点?
我假设我也可以对 Android(手机和标签)和 IOS(iPhone 和 iPad)设备做同样的事情。
android - 对于unity3d中画布的屏幕尺寸缩放,当用于更大的屏幕时,我在Ui中的精灵是像素化的
对于 Unity 中的 UI 设计,我使用 Scale 模式作为Scale with screen Size
. 当我使用一些图像并在更大的屏幕上渲染 UI 时。图像显示为像素化图像。
我阅读AssetBundle Variants
并想使用它们。但我怀疑如何Screen Density
帮助我选择正确的 AssetBundle Variant。
根据这个参考。
iPhone - 3.5 in, 320x480px 导致选择 1.0 ( mdpi )
iPad - 9.7 in, 768x1024px 也导致选择 1.0 ( mdpi )
因此,如果 iPhone 和 iPad 都选择相同的 1.0 (mdpi) 版本的资产包变体,因为我Scale with screen Size
在我的游戏中使用 Canvas Scaler 模式。图像不会仍然像素化,因为它只是为不同尺寸的屏幕缩放了相同的图像?
我在谷歌搜索,但找不到博客或任何清楚解释这些事情的例子。我在使用AssetBundles
或选择资产变体或为手机和平板电脑准备资产变体变体的过程中是否遗漏了什么......?