예제 #1
0
    public void Start()
    {
        animator        = GetComponent <Animator>();
        roadTool        = GetComponent <RoadTool>();
        buildingTool    = GetComponent <BuildingTool>();
        moveUI          = GetComponent <MoveUI>();
        tileHighlighter = GetComponent <TileHighlighter>();

        Menus = new GameObject[] { buildingMenu, mainMenu, buildMenu };

        foreach (CompoundButton menuButton in buildMenuButtons)
        {
            menuButton.OnButtonClicked += BuildMenuButtonPressed;
        }

        foreach (CompoundButton menuButton in mainMenuButtons)
        {
            menuButton.OnButtonClicked += MainMenuButtonPressed;
        }

        foreach (CompoundButton timeButton in timeButtons)
        {
            timeButton.OnButtonClicked += TimeButtonPressed;
        }
    }
    public override void OnInspectorGUI()
    {
        roadTool = (RoadTool)target;

        EditorGUILayout.LabelField("Points", roadTool.points.Count.ToString());
        if (GUILayout.Button("Remove Points"))
        {
            ClearPath();
        }
        if (GUILayout.Button("Remove Last Point"))
        {
            RemoveLastPoint();
        }

        if (GUILayout.Button(!editMode? "Edit Path" : "Exit edit path mode"))
        {
            ToggleEditMode();
        }

        float upOffset  = EditorGUILayout.FloatField("Up offset", roadTool.upOffset);
        float pathWidth = EditorGUILayout.FloatField("Path Width", roadTool.pathWidth);
        float uvs       = EditorGUILayout.FloatField("Uv Length", roadTool.uvsY);

        if (upOffset != roadTool.upOffset ||
            pathWidth != roadTool.pathWidth ||
            uvs != roadTool.uvsY)
        {
            roadTool.upOffset  = upOffset;
            roadTool.pathWidth = pathWidth;
            roadTool.uvsY      = uvs;
            roadTool.CreateMesh();
        }
    }
예제 #3
0
    public override void SelectTool(string setting)
    {
        RoadTool tool = new RoadTool(mapController);

        if (setting == "unidirectional")
        {
            tool.BiDirection = false;
        }
        else
        {
            tool.BiDirection = true;
        }
        toolSelector.SelectTool(tool);
        gameObject.GetComponent <Button>().image.color = Color.white;
    }
    public void OnSceneGUI()
    {
        roadTool = (RoadTool)target;

        Event e = Event.current;

        if (editMode && e.button == 0)
        {
            bool used = false;

            if (e.type == EventType.MouseDown)
            {
                roadTool.ManageClick(e.mousePosition);
                used = true;
            }

            if (e.type == EventType.MouseDrag)
            {
                roadTool.ManageDrag(e.mousePosition);
                used = true;
            }

            if (e.type == EventType.MouseUp)
            {
                roadTool.ManageMouseUp(e.mousePosition);
                used = true;
            }

            if (used)
            {
                e.Use();
                SceneView.RepaintAll();
            }
        }


        if (e.type == EventType.Layout && editMode)
        {
            HandleUtility.AddDefaultControl(controlID);
        }
    }