protected virtual void Start()
        {
            if (transform.parent != null)
            {
                RuntimeWindow parent = transform.parent.GetComponentInParent <RuntimeWindow>();
                if (parent != null)
                {
                    Depth = parent.Depth + 1;
                }
            }

            //m_texturePreview.transform.position = new Vector3(ManualUVRenderer.Scale, ManualUVRenderer.Scale, 2) * 0.5f;
            m_texturePreview.transform.rotation              = Quaternion.Euler(90, 180, 0);
            m_texturePreview.transform.localScale            = Vector3.one * 10;
            m_texturePreview.sharedMaterial.mainTextureScale = Vector2.one * 10;
            m_graphicsLayer = IOCContainer.Resolve <IRTEGraphicsLayer>();
            m_graphicsLayer.Camera.RenderersCache.Add(m_texturePreview);

            m_materialEditor = IOC.Resolve <IMaterialEditor>();
            m_materialEditor.MaterialsApplied += OnMaterialApplied;

            m_paletteManager = IOC.Resolve <IMaterialPaletteManager>();
            m_paletteManager.PaletteChanged  += OnPaletteChanged;
            m_paletteManager.MaterialAdded   += OnMaterialsChanged;
            m_paletteManager.MaterialCreated += OnMaterialsChanged;
            m_paletteManager.MaterialRemoved += OnMaterialsChanged;
        }
示例#2
0
        private void Awake()
        {
            IOC.RegisterFallback <IProBuilderTool>(this);

            m_rte = IOC.Resolve <IRuntimeEditor>();

            m_wm = IOC.Resolve <IWindowManager>();
            m_wm.WindowCreated += OnWindowCreated;

            m_materialEditor = gameObject.AddComponent <PBMaterialEditor>();
            m_autoUVEditor   = gameObject.AddComponent <PBAutoUVEditor>();
            m_uv             = new PBAutoUnwrapSettings();
            m_uv.Changed    += OnUVChanged;

            PBVertexEditor vertexEditor = gameObject.AddComponent <PBVertexEditor>();
            PBEdgeEditor   edgeEditor   = gameObject.AddComponent <PBEdgeEditor>();
            PBFaceEditor   faceEditor   = gameObject.AddComponent <PBFaceEditor>();

            m_meshEditors = new IMeshEditor[4];
            m_meshEditors[(int)ProBuilderToolMode.Vertex] = vertexEditor;
            m_meshEditors[(int)ProBuilderToolMode.Edge]   = edgeEditor;
            m_meshEditors[(int)ProBuilderToolMode.Face]   = faceEditor;

            foreach (IMeshEditor editor in m_meshEditors)
            {
                if (editor == null)
                {
                    continue;
                }
                editor.CenterMode = m_rte.Tools.PivotMode == RuntimePivotMode.Center;
            }
            UpdateGlobalMode();

            m_pivot = new GameObject("Pivot").transform;
            LockAxes lockAxes = m_pivot.gameObject.AddComponent <LockAxes>();

            lockAxes.RotationFree = true;

            m_pivot.SetParent(transform, false);

            ExposeToEditor exposed = m_pivot.gameObject.AddComponent <ExposeToEditor>();

            exposed.CanDelete    = false;
            exposed.CanDuplicate = false;
            exposed.CanInspect   = false;
        }
        private void Awake()
        {
            IOC.RegisterFallback <IProBuilderTool>(this);

            m_rte = IOC.Resolve <IRuntimeEditor>();

            m_wm = IOC.Resolve <IWindowManager>();
            m_wm.WindowCreated += OnWindowCreated;
            foreach (RuntimeWindow window in m_rte.Windows)
            {
                if (window.WindowType == RuntimeWindowType.Scene)
                {
                    SetCullingMask(window);
                }
            }

            m_materialEditor  = gameObject.AddComponent <PBMaterialEditor>();
            m_autoUVEditor    = gameObject.AddComponent <PBAutoUVEditor>();
            m_polyShapeEditor = gameObject.AddComponent <ProBuilderPolyShapeEditor>();

            m_uv          = new PBAutoUnwrapSettings();
            m_uv.Changed += OnUVChanged;

            bool wasActive = gameObject.activeSelf;

            gameObject.SetActive(false);
            PBVertexEditor vertexEditor = gameObject.AddComponent <PBVertexEditor>();
            PBEdgeEditor   edgeEditor   = gameObject.AddComponent <PBEdgeEditor>();
            PBFaceEditor   faceEditor   = gameObject.AddComponent <PBFaceEditor>();

            m_meshEditors = new IMeshEditor[5];
            m_meshEditors[(int)ProBuilderToolMode.Vertex] = vertexEditor;
            m_meshEditors[(int)ProBuilderToolMode.Edge]   = edgeEditor;
            m_meshEditors[(int)ProBuilderToolMode.Face]   = faceEditor;

            foreach (IMeshEditor editor in m_meshEditors)
            {
                if (editor == null)
                {
                    continue;
                }
                editor.GraphicsLayer = m_rte.CameraLayerSettings.ExtraLayer1;
                editor.CenterMode    = m_rte.Tools.PivotMode == RuntimePivotMode.Center;
            }
            UpdateGlobalMode();

            m_pivot = new GameObject("Pivot").transform;
            LockAxes lockAxes = m_pivot.gameObject.AddComponent <LockAxes>();

            lockAxes.RotationFree = true;

            m_pivot.SetParent(transform, false);

            ExposeToEditor exposed = m_pivot.gameObject.AddComponent <ExposeToEditor>();

            exposed.CanDelete    = false;
            exposed.CanDuplicate = false;
            exposed.CanInspect   = false;

            gameObject.SetActive(wasActive);
        }