Я пытаюсь создать новый элемент для моего проекта единства, но мне нужно единство, чтобы весь объект был объектом UI, как это сделать. Мой текущий сценарий до сих пор.Как создать объект как родительский элемент Canvas
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 находился под холстом пользовательского интерфейса или был родителем холста пользовательского интерфейса? Почему у вас есть «Selection.activeTransform»? Слишком много вопросов по вашему вопросу. – Programmer
@Programmer Я хочу, чтобы объект «switch» был дочерним элементом Canvas UI, я знаю, что вы можете найти объект по имени, но я хочу его создать, чтобы он нашел холст, даже если имя было изменено, это что не работает, я продолжал искать и нашел способ сделать объект дочерним элементом холста, но не тогда, когда холст не называется «Холст». – Jdoonan
Ваш комментарий на самом деле объясняет вашу проблему больше, чем ваш вопрос. Проверьте мой ответ. – Programmer