Пример #1
0
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();

            if (GUILayout.Button("添加接口"))
            {
                var count = part.PortCount;
                var port  = new GameObject($"Port{count}").AddComponent <BasicPort>();
                port.transform.parent        = part.transform;
                port.transform.localPosition = Vector3.zero;
                if (!part.AddPort(port))
                {
                    Debug.LogWarning("添加新接口失败!");
                    DestroyImmediate(port.gameObject);
                }
            }

            if (GUILayout.Button("添加辅助接口"))
            {
                var count = part.PortCount;
                var port  = new GameObject($"AsstPort{count}").AddComponent <AssistantPort>();
                port.transform.parent        = part.transform;
                port.transform.localPosition = Vector3.zero;
                if (!part.AddPort(port))
                {
                    Debug.LogWarning("添加新接口失败!");
                    DestroyImmediate(port.gameObject);
                }
            }

            if (selectedPort != null && selectedPort.IsExists())
            {
                if (GUILayout.Button("移除接口"))
                {
                    if (!part.RemovePort(selectedPort))
                    {
                        Debug.LogWarning("移除接口失败!");
                    }
                    else
                    {
                        DestroyImmediate(selectedPort.gameObject);
                        selectedPort = null;
                    }
                }
                else
                {
                    if (!serializedPort.IsExists())
                    {
                        GetSelectedPortInfo();
                    }
                    DrawSelectedPortInspector();
                }
            }
        }
Пример #2
0
        private void OnEnable()
        {
            part = target as MonoPart;

            if (part.RootPort.IsExists())
            {
                rootPort = (MonoPort)part.RootPort;
            }
            else             // 如果该部件没有根接口..
            {
                Debug.Log("Adding root port");
                // 尝试在其子对象中寻找根接口
                rootPort = part.transform.Find("RootPort")?.GetComponent <MonoPort>();

                // 如果没有..
                if (rootPort == null)
                {
                    // 新创建一个
                    rootPort = new GameObject("RootPort").AddComponent <BasicPort>();
                    rootPort.transform.parent        = part.transform;
                    rootPort.transform.localPosition = Vector3.zero;
                }

                // 将根部件加入到部件上
                part.AddPort(rootPort, true);
            }
        }