{"id":52,"date":"2013-03-20T22:02:36","date_gmt":"2013-03-20T22:02:36","guid":{"rendered":"http:\/\/lotecsoftware.com\/unity\/blog\/?p=52"},"modified":"2022-09-10T15:27:00","modified_gmt":"2022-09-10T13:27:00","slug":"move-object-between-waypoints","status":"publish","type":"post","link":"http:\/\/lotecsoftware.com\/unity\/blog\/?p=52","title":{"rendered":"Move object between waypoints"},"content":{"rendered":"<p>Simplified SeekSteer and made my own script for moving objects between waypoints. The MovingPlatform now works much better.<\/p>\n<pre class=\"lang:c# decode:true\">\/**\r\n * Attach to object. Moves object between waypoints.\r\n *\/\r\nusing UnityEngine;\r\nusing System.Collections;\r\n\r\npublic class WaypointsMover : MonoBehaviour {\r\n    public Transform[] waypoints;\r\n    public float waypointRadius = 1.0f;\r\n    public bool loop = true;\r\n    public float speed = 2.0f;\r\n\r\n    private Vector3 currentHeading,targetHeading;\r\n    private int targetwaypoint;\r\n    private Transform _transform;\r\n\r\n    protected void Start () {\r\n\t\tenabled = false;\r\n        _transform = transform;\r\n        if(waypoints.Length &lt;= 0) {\r\n            Debug.Log(\"No waypoints on \" + name);\r\n            enabled = false;\r\n        }\r\n        targetwaypoint = 0;\r\n    }\r\n\r\n    protected void Update() {\r\n        if(Vector3.Distance(_transform.position, waypoints[targetwaypoint].position) &lt;= waypointRadius) {\r\n            targetwaypoint++;\r\n            if(targetwaypoint &gt;= waypoints.Length) {\r\n                targetwaypoint = 0;\r\n                if(!loop)\r\n                    enabled = false;\r\n            }\r\n        }\r\n\t\t_transform.position = Vector3.MoveTowards(_transform.position, waypoints[targetwaypoint].position, Time.deltaTime * speed);\r\n    }\r\n\r\n    \/\/ Draws red line between waypoints, and sphere with radius\r\n    public void OnDrawGizmos() {\r\n        if(waypoints == null)\r\n            return;\r\n\r\n        for(int i=0;i&lt; waypoints.Length;i++) {\r\n    \t    Gizmos.color = new Color(0.9f, 0, 0, 0.3f);\r\n\t\t\tGizmos.DrawSphere(waypoints[i].position, waypointRadius);\r\n\t        Gizmos.color = Color.red;\r\n            Vector3 pos = waypoints[i].position;\r\n            if(i&gt;0) {\r\n                Vector3 prev = waypoints[i-1].position;\r\n                Gizmos.DrawLine(prev,pos);\r\n            }\r\n        }\r\n    }\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Simplified SeekSteer and made my own script for moving objects between waypoints. The MovingPlatform now works much better. \/** * Attach to object. Moves object between waypoints. *\/ using UnityEngine; using System.Collections; public class WaypointsMover : MonoBehaviour { public Transform[] waypoints; public float waypointRadius = 1.0f; public bool loop = true; public float speed = [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[9],"_links":{"self":[{"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=\/wp\/v2\/posts\/52"}],"collection":[{"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=52"}],"version-history":[{"count":5,"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=\/wp\/v2\/posts\/52\/revisions"}],"predecessor-version":[{"id":89,"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=\/wp\/v2\/posts\/52\/revisions\/89"}],"wp:attachment":[{"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=52"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=52"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/lotecsoftware.com\/unity\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=52"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}