我想在ScrollView中创建一个自定义列表,但我无法在新的UI中设置它.
我有一个预制件,它是一个带有5个文本元素的面板.现在,ScrollView在场景中有一个水平和一个垂直滚动条,我想在另一个下面实例化 5个预制件,使它们看起来像一个桌子.
这是我做的,但它只是在彼此之上实例化并延伸它们:
for(int i=0; i<5; i++)
{
GameObject q = Instantiate(questionObjectModel) as GameObject;
q.transform.parent = questionListHolder.GetComponent<Transform>();
}
Run Code Online (Sandbox Code Playgroud)
questionObjectModel是场景中的ScrollView(我确实尝试在其中设置另一个面板和 _Istantiate_预制件).
编辑:
好的,我设法让它们不被拉伸.现在只需将它们设置在另一个下面:
q.transform.SetParent(questionListHolder.transform, false);
Run Code Online (Sandbox Code Playgroud) 我正在使用unity3D开发游戏,我需要帮助制作进度时间栏,以便在收集特定项目时添加时间,从而继续游戏.
如果我的画布在世界空间中渲染,我能够检测到 UI 组件和游戏对象之间的碰撞。在这里,当画布渲染模式是屏幕空间覆盖时,我试图找到两个 UI 元素(比如 UI 按钮)之间的冲突。
我向我的 UI 按钮添加了框碰撞器组件并尝试使用 OnCollisionEnter2D 和 OnTriggerEnter2D。但是,未检测到碰撞。有没有办法检测碰撞?
简单的问题,我正在尝试制作一个脆弱的鸟克隆,我需要帮助显示分数.我已将分数添加并显示到控制台,但我无法将其显示在gui文本上.
我已经尝试谷歌如何做到这一点并观看很多人的飞扬鸟类教程,看看他们是如何做到的,但是当他们引入新的ui系统时,所有这些都是在团结4.6之前,他们使用的相同代码似乎没有上班.
那么如何在代码中访问附加到我的游戏对象的gui文本呢?谢谢.
任何人都可以在编辑器中解释原因:
而在我的Galaxy S6上,我得到:
我的Panel
UI元素(它是父元素)有GridLayoutGroup
组件,以及ContentSizeFitter
.子元素具有LayoutElement
FlexibleWidth/Height为120 的组件,并且所有锚点都设置为在所有方向上伸展.
在Canvas
被设定为屏幕尺寸按比例绘制,为320x480的参考RES和屏幕模式是匹配的高度.
无论正方形的数量(动态)如何,编辑器都可以完美地调整父元素中的子元素,但是我的设备使它们很小.我真的很困惑.
脚本中没有大小或锚点的设置,纯粹是实例化和父类的赋值,如下所示:
for(int i=0; i < amount; i++)
{
GameObject emptyCell = (GameObject)Instantiate(emptyCellObject);
emptyCell.transform.SetParent(cellHolder);
emptyCell.GetComponent<RectTransform>().localPosition = new Vector3(0f, 0f, 0f);
emptyCells.Add(emptyCell);
}
Run Code Online (Sandbox Code Playgroud)
我还检查了所有与以下相关的文档:http://docs.unity3d.com/Manual/comp-UIAutoLayout.html - 甚至UI教程电影,以及一些关于'新'UI工具的博客文章,但没有更改物理设备上的维度,并且似乎在编辑器中没有任何更改,因为它保持不变.
我确定我做的事情很傻,但我已经筋疲力尽了所有的途径,希望有人之前遇到过这种奇怪的事情.
我试图延长UnityEngine.UI.Image
这样的
public class MyImage : Image {
public string Comment;
}
Run Code Online (Sandbox Code Playgroud)
但是我没有Comment
在检查器中看到额外的文本字段。是否可以添加检查器中可用的额外字段?
PS它触发为使用自定义Inspector扩展Unity UI组件重复,但不是重复的。我什么也没问custom Inspector
。它只是的常规字段default Inspector
。问题在于该字段根本没有出现在检查器中。
我有一个继承的类MaskableGraphic
.在函数中Awake()
,我创建了一个gameObject.奇怪的是当停止Unity时,游戏对象不会被破坏.
public class Test : MaskableGraphic
{
protected void Awake()
{
var go = new GameObject();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个关于如何在检测到的标记上显示简单二维图像的问题。我已经按照一些教程来显示 3d 模型,它工作正常。3d没有问题。当我想添加普通的 2d object->sprite 时,问题就开始了。当我添加简单的精灵时,我无法添加纹理,当我插入 UI 图像时,它与画布一起添加,并且在检测到目标时不显示。编辑器上的原始图像放置到此为止,很难找到它。如果有人能向我强调正确的方向,我将不胜感激。
我需要让这个图像像按钮一样触感。单击它必须显示新场景(我有它,但在 GUI.Button 下)。最好的方法是替换原始标记,但我也可以使新精灵变大以将标记隐藏在其下。