コード例 #1
0
ファイル: Environment.cs プロジェクト: siegjan6/HMI
        public IDrawObj CreateDrawObj(DrawType type)
        {
            //todo add control
            IDrawObj obj;

            switch (type)
            {
            case DrawType.Group:
                obj = new DrawGroup();
                break;

            case DrawType.Combine:
                obj = new DrawCombine();
                break;

            case DrawType.Rect:
                obj = new DrawRect();
                break;

            case DrawType.Ellipse:
                obj = new DrawEllipse();
                break;

            case DrawType.Text:
                obj = new DrawText();
                break;

            case DrawType.StraightLine:
                obj = new DrawStraightLine();
                break;

            case DrawType.FoldLine:
                obj = new DrawFoldLine();
                break;

            case DrawType.Bezier:
                obj = new DrawBezier();
                break;

            case DrawType.Polygon:
                obj = new DrawPolygon();
                break;

            case DrawType.ClosedBezier:
                obj = new DrawClosedBezier();
                break;

            default:
                return(null);
            }

            return(obj);
        }
コード例 #2
0
ファイル: PlayerCursor.cs プロジェクト: lukesmith123/MFD
    private void OnGUI()
    {
        if (playerInput && playerInteraction && stateHandler && settingsManager && runtimeInventory && showCursor)
        {
            GUI.depth = -1;

            if (runtimeInventory.selectedID > -1 && settingsManager.inventoryHandling != InventoryHandling.ChangeHotspotLabel && stateHandler.gameState != GameState.Paused)
            {
                // Cursor becomes selected inventory
                if (runtimeInventory.GetTexture(runtimeInventory.selectedID))
                {
                    GUI.DrawTexture(AdvGame.GUIBox(playerInput.mousePosition, settingsManager.inventoryCursorSize), runtimeInventory.GetTexture(runtimeInventory.selectedID), ScaleMode.ScaleToFit, true, 0f);
                }
                else
                {
                    Debug.LogWarning("No texture defined for " + runtimeInventory.GetLabel(runtimeInventory.selectedID) + " - please set in InventoryManager");
                }
            }
            else
            {
                if (playerInteraction.hotspot && stateHandler.gameState == GameState.Normal && playerInteraction.hotspot.provideUseInteraction && settingsManager.allowInteractionCursor)
                {
                    if (playerInteraction.hotspot.useIcon == InteractionIcon.Talk)
                    {
                        if (settingsManager.talkTexture)
                        {
                            GUI.DrawTexture(AdvGame.GUIBox(playerInput.mousePosition, settingsManager.iconCursorSize), settingsManager.talkTexture, ScaleMode.ScaleToFit, true, 0f);
                        }
                        else
                        {
                            Debug.LogWarning("No 'talk' texture defined - please set in SettingsManager.");
                        }
                    }

                    else if (playerInteraction.hotspot.useIcon == InteractionIcon.Examine)
                    {
                        if (settingsManager.lookTexture)
                        {
                            GUI.DrawTexture(AdvGame.GUIBox(playerInput.mousePosition, settingsManager.iconCursorSize), settingsManager.lookTexture, ScaleMode.ScaleToFit, true, 0f);
                        }
                        else
                        {
                            Debug.LogWarning("No 'look' texture defined - please set in SettingsManager.");
                        }
                    }

                    else
                    {
                        if (settingsManager.useTexture)
                        {
                            GUI.DrawTexture(AdvGame.GUIBox(playerInput.mousePosition, settingsManager.iconCursorSize), settingsManager.useTexture, ScaleMode.ScaleToFit, true, 0f);
                        }
                        else
                        {
                            Debug.LogWarning("No 'use' texture defined - please set in SettingsManager.");
                        }
                    }
                }
                else if (playerInteraction.hotspot && playerInteraction.hotspot.provideLookInteraction && settingsManager.allowInteractionCursor)
                {
                    if (settingsManager.lookTexture)
                    {
                        GUI.DrawTexture(AdvGame.GUIBox(playerInput.mousePosition, settingsManager.iconCursorSize), settingsManager.lookTexture, ScaleMode.ScaleToFit, true, 0f);
                    }
                    else
                    {
                        Debug.LogWarning("No 'examine' texture defined - please set in SettingsManager.");
                    }
                }
                else if (settingsManager.allowMainCursor || settingsManager.inputType == InputType.Controller)
                {
                    if (settingsManager.pointerTexture)
                    {
                        GUI.DrawTexture(AdvGame.GUIBox(playerInput.mousePosition, settingsManager.normalCursorSize), settingsManager.pointerTexture, ScaleMode.ScaleToFit, true, 0f);
                    }
                    else
                    {
                        Debug.LogWarning("No 'main' texture defined - please set in SettingsManager.");
                    }
                }
            }

            // Drag line
            if (stateHandler.gameState == GameState.Normal && playerInput.activeArrows == null && settingsManager.inputType == InputType.TouchScreen && settingsManager.controlStyle != ControlStyle.PointAndClick && playerInput.dragStartPosition != Vector2.zero)
            {
                Vector2 pointA = playerInput.dragStartPosition;
                Vector2 pointB = playerInput.invertedMouse;
                DrawStraightLine.Draw(pointA, pointB, settingsManager.dragLineColor, settingsManager.dragLineWidth);
            }
        }
    }