- Home /
 
Transform list resetting on play from custom inspector button
I am making a moving platform script which is user friendly and has a way to create waypoints from the inspector before pressing play. these waypoints are put into a list when they are created and when I press play this list is reset back to a count of 0. how do I make it so this list keeps it's content upon play? I will put my scripts below. thanks in advance for any help!
Custom inspector script:
 using UnityEngine;
 using System.Collections;
 using UnityEditor;
 
 [RequireComponent(typeof(MovingPlatform_Manager))]
 
 [CustomEditor(typeof(MovingPlatform_Manager))]
 public class MovingPlatform_Editor : Editor
 {
     string[] movementModeChoices = new [] { "Loop", "Ping Pong" };
 
     public override void OnInspectorGUI()
     {
         DrawDefaultInspector();
 
         MovingPlatform_Manager platformManager = (MovingPlatform_Manager)target;
 
         if(GUILayout.Button("Add Waypoint"))
         {
             platformManager.CreateWaypoint();
         }
 
         if(platformManager.waypoints.Count != 0)
         if(GUILayout.Button("Remove Waypoint"))
         {
             platformManager.RemoveWaypoint();
         }
 
         GUILayout.Label ("Movement Mode:");
         platformManager.MovementModeSelection = EditorGUILayout.Popup (platformManager.MovementModeSelection, movementModeChoices);
 
     }
 }
 
               Moving platform script:
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEditor;
 
 [System.Serializable]
 public class MovingPlatform_Manager : MonoBehaviour {
 
     private int movementModeSelection;        
 
     public Transform waypoint;                
     public Transform platform;                
 
     public List<Transform> waypoints = new List<Transform>();        
 
     public void CreateWaypoint()
     {
         Transform newWaypoint = Instantiate (waypoint, new Vector3 (0f, 0f, 0f), Quaternion.identity);
         newWaypoint.transform.name = "Waypoint_" + (waypoints.Count + 1).ToString();
 
         waypoints.Add (newWaypoint);
 
         if (waypoints.Count > 2)
             waypoints [waypoints.Count - 1].transform.position = waypoints [waypoints.Count - 2].transform.position;
     }
 
     public void RemoveWaypoint()
     {
         DestroyImmediate(GameObject.Find(waypoints[waypoints.Count - 1].transform.name));
         waypoints.RemoveAt (waypoints.Count - 1);
     }
 
     private void Awake()
     {
         if (waypoints.Count > 1) {
             Instantiate (platform, waypoints [0].transform.position, Quaternion.identity);
         }  else if (waypoints.Count <= 1) {
             Debug.Log ("Not enough Waypoints in the scene.");
         }
     }
 
     private void Update()
     {
 
     }
 
     public int MovementModeSelection
     {
         get{return movementModeSelection; }
         set{movementModeSelection = value; }
     }
 
 }
 
 
              Answer by pauldonnelly2018 · Aug 30, 2018 at 10:01 AM
Hope it will be helpful to look here: https://answers.unity.com/questions/1225900/public-variables-set-with-custom-editor-buttons-re.html or otherwise you can delegate this task to term paper writer for the issue to be solved faster.
Your answer
 
             Follow this Question
Related Questions
A node in a childnode? 1 Answer
Showing the editors of list elements 0 Answers
Multiple variables in one array element + access them 2 Answers
Custom Inspector; adding to list not getting saved 2 Answers