示例#1
0
    private void Start()
    {
        Vector3 spawnPoint = WaypointUtility.getWaypoint(0).position;

        spawnPoint.y = 0f;
        float yOffset = spawnPoint.y - GetComponent <MeshRenderer>().bounds.min.y;

        transform.position = spawnPoint + (Vector3.up * yOffset);
    }
示例#2
0
        /// Function to Draw Handles in Scene
        private void OnSceneGUI()
        {
            Event   evt       = Event.current;
            Vector3 cameraPos = SceneView.currentDrawingSceneView.camera.transform.position;

            if (this.m_waypoint.waypointData != null)
            {
                Handles.color = this.m_waypoint.trailColor;
                ///Draw Curves
                for (int i = 0; i < this.m_waypoint.waypointData.length; i++)
                {
                    //Drawing a last Curve from Last Point to a FirstPoint
                    if (i == this.m_waypoint.waypointData.length - 1)
                    {
                        if (this.m_waypoint.completeTrail)
                        {
                            WaypointUtility.DrawCurve(this.m_waypoint.TransformPoint(this.m_waypoint.waypointData[i + 0]), this.m_waypoint.TransformPoint(this.m_waypoint.waypointData[0 + 0]), this.m_waypoint.trailDetailLevel, this.DrawLine);
                        }
                    }
                    else
                    {
                        WaypointUtility.DrawCurve(this.m_waypoint.TransformPoint(this.m_waypoint.waypointData[i + 0]), this.m_waypoint.TransformPoint(this.m_waypoint.waypointData[i + 1]), this.m_waypoint.trailDetailLevel, this.DrawLine);
                    }
                }

                //Drawing Handles to Move the Point of Waypoint
                for (int i = 0; i < this.m_waypoint.waypointData.length; i++)
                {
                    EditorGUI.BeginChangeCheck();
                    Point point = this.m_waypoint.waypointData[i];
                    Point np    = this.m_waypoint.InverseTransformPoint(this.HandleDrawPoint(i, this.m_waypoint.TransformPoint(point), cameraPos, this.m_index == i));

                    //Recording Undo
                    if (EditorGUI.EndChangeCheck())
                    {
                        Undo.RecordObjects(new Object[] { this.m_waypoint.waypointData, this }, "Point Modify");
                        this.m_waypoint.waypointData[i] = np;
                        this.Repaint();
                    }
                }
                Handles.color = Color.white;

                if (evt.type == EventType.ExecuteCommand)
                {
                    if (evt.commandName == "Duplicate")
                    {
                        this.OnAddPoint(this.m_relist);
                        evt.Use();
                    }
                    else if (evt.commandName == "SoftDelete")
                    {
                        this.OnRemovePoint(this.m_relist);
                        evt.Use();
                    }
                }
            }
        }
示例#3
0
    void addWaypoints()
    {
        List <Transform> waypoints = new List <Transform>();

        for (int i = 0; i < 2; i++)
        {
            for (int j = 0; j < 2; j++)
            {
                GameObject waypoint = Instantiate(WaypointUtility.WAYPOINT_PREFAB, Vector3.zero, Quaternion.identity) as GameObject;
                waypoint.name = "Waypoint" + i + j;
                waypoints.Add(waypoint.transform);
                grid.setObjectAt(waypoint, i * (numRows - 1), j * (numColumns - 1));
            }
        }
        WaypointUtility.setWaypoints(waypoints.ToArray());
    }