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); }
/// 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(); } } } }
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()); }