我有一个带有渲染模式世界空间集的UI画布.对于属于此画布的所有UI元素,我在编辑器的RectTransform组件中看到"left","right","top"和"bottom"变量.有没有办法通过代码访问这些变量?
我使用Unity 5.1为移动游戏构建了一个注册表单.为此,我使用Unity UI组件:ScrollRect + Autolayout(垂直布局)+文本(标签)+输入字段.这部分工作正常.
但是,打开键盘时,所选字段位于键盘下方.有没有办法以编程方式滚动表单以使选定的字段进入视图?
我尝试过使用ScrollRect.verticalNormalizedPosition
它可以正常滚动一些,但是我无法将所选字段显示在我想要的位置.
谢谢你的帮助 !
我正在尝试将onValueChanged事件附加到我的GUI Slider,但由于某种原因,它给了我一个强制选项来放入一个值(它是"On Value Change(Single)"部分中的第四个框).然后它只发送前面提到的值,而不是滑块的实际值.
该活动的代码如下:
public void ChangeWindDirection(float value)
{
Debug.Log("New wind direction: " + value);
}
Run Code Online (Sandbox Code Playgroud)
我尝试重启Unity和Visual Studio 2013无济于事.现在,它甚至会为我尝试创建的每个新事件添加一个值.
我试图得到一个inputField内文本中Unity3D
有C#
.
我在我的编辑器中放置了一个inputField,重命名并标记为:Username_field.
我的问题是:如何在脚本中的InputField
Username_field中获取文本C#
?
当我在UI文本上运行以下代码时
Color color = text.color;
color.a -= 1.0f;
text.color = color;
Run Code Online (Sandbox Code Playgroud)
文本的alpha值立即设置为0.我怎样才能简单地淡出文本.
当设置为时,我正在尝试使用第一人称控制器与世界空间UI进行交互.Cursor.lockState
CursorLockMode.Locked
但是当光标被锁定时,光标位置设置为(-1,-1),这是从Inspector告知的.
我进行了图形光线投射EventSystem.RaycastAll
,Sreen.width/2
和PointerEventData
.EventSystem.current.RaycastAll
收集屏幕中间的所有UI对象,但不会向它们发送任何事件.
我还试图ExecuteEvents.Execute<IEventSystemHandler>
将事件发送到UI目标.当我向其发送'submit'事件时,这适用于按钮.显然这不是一个优雅的解决方案.我也不知道如何向滑块发送消息.
// manully send a 'submit' event to UI elements
List<RaycastResult> results = new List<RaycastResult>();
void Update() {
if (Input.GetButtonUp("Fire1")) {
PointerEventData data = new PointerEventData(EventSystem.current);
data.position = new Vector2(Screen.width / 2, Screen.height / 2);
EventSystem.current.RaycastAll(data, results);
foreach (var result in results) {
ExecuteEvents.ExecuteHierarchy<ISubmitHandler>(
result.gameObject, data,
ExecuteEvents.submitHandler
);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在Windows上全屏播放时,这种疯狂的尝试都有效.2333
[System.Runtime.InteropServices.DllImport("user32.dll")] …
Run Code Online (Sandbox Code Playgroud) 是否可以扩展新的单位ui组件,例如变换组件?因为当我尝试扩展按钮而不是转换组件时没有任何反应
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(Transform))]
public class CustomTransform : Editor
{
public override void OnInspectorGUI()
{
}
}
Run Code Online (Sandbox Code Playgroud) 我搜索的所有内容都基于旧的UI.
我尝试了以下内容
button.image = Resource.Load<Image>("...");
button.GetComponent<Image>() = Resources.Load<Image>("....");
button.GetComponent<Button>().image = Resources.Load<Image>("....");
button.GetComponent<Image>().sprite = Resources.Load<Sprite>("....");
Run Code Online (Sandbox Code Playgroud)
我想更改活动上的按钮图像.
我刚开始使用Unity,我想从UI输入字段中检索文本,但无法这样做,请帮忙.
我有一个2D游戏设置为1080p像素大小(所以每个单位等于1像素),我已经添加了一个画布到我的场景.然而,画布仅填充屏幕的大约1/8,也不是中心.所有画布大小和位置设置都被锁定,因此我无法移动它或调整其大小.画布本身确实反映了屏幕(即如果我在正确的右上角放置文本),但是尺寸使得很难判断元素的最佳定位位置.
如何让画布填满我的场景?