【发布时间】:2016-07-23 18:13:30
【问题描述】:
我正在尝试为我的统一项目创建一个新元素,但我需要统一将我的整个对象呈现为 UI 对象,我该如何实现这一点。到目前为止我目前的脚本。
using UnityEditor;
using UnityEngine;
public class OptionSwitch : MonoBehaviour {
[MenuItem ("GameObject/UI/Switch")]
static void Switch(){
GameObject go = new GameObject("switch");
go.transform.parent = Selection.activeTransform;
go.transform.localPosition = Vector3.zero;
}
}
它将是一个选项开关,在文本框的任一侧都有一个按钮,指示活动选项。
我做了更多的研究并想出了这段代码。
using UnityEditor;
using UnityEngine;
public class OptionSwitch : MonoBehaviour {
[MenuItem ("GameObject/UI/Switch")]
static void Switch(){
if (GameObject.Find ("Canvas") != null) {
// Define Components
GameObject Canvas = GameObject.Find("Canvas");
GameObject Switch = new GameObject("Switch");
GameObject Previous = new GameObject("Previous Button");
GameObject Next = new GameObject("Next Button");
GameObject Text = new GameObject("Textbox");
// Place Switch
Switch.transform.parent = Canvas.transform;
Switch.transform.localPosition = Vector3.zero;
// Place Previous Button
Previous.transform.parent = Switch.transform;
Previous.transform.localPosition = Vector3.zero;
// Place Text Field
Text.transform.parent = Switch.transform;
Text.transform.localPosition = Vector3.zero;
// Place Next Field
Next.transform.parent = Switch.transform;
Next.transform.localPosition = Vector3.zero;
}
}
}
【问题讨论】:
-
那么,现在怎么样了?什么有效,什么无效?另外,需要明确的是,您希望新创建的 GameObject 位于 UI Canvas 下还是作为 UI Canvas 的父级?为什么你有
Selection.activeTransform?关于您的问题的问题太多了。 -
@Programmer 我希望对象“switch”成为 UI Canvas 的子对象,我知道您可以通过名称找到对象,但我想设计它以便它甚至可以找到画布如果名称被更改,那是行不通的,我继续寻找并找到一种方法使对象成为画布的子对象,但当画布不被称为“画布”时不会。
-
您的评论实际上比您的问题更能说明您的问题。检查我的答案。
-
当我说关闭答案时,我的意思是你接受的是答案而不是删除它。这个答案可以帮助很多人。请取消删除并将其标记为答案。 stackoverflow.com/questions/38546130/… 谢谢。
-
抱歉,这是我的错误,我会改正的