- Home /
 
               Question by 
               Vuja998 · Mar 15, 2015 at 07:35 PM · 
                javascripteditorserializationcustom-inspector  
              
 
              Custom Inspector data serialization in JavaScript
I've been making a custom inspector for a couple of days now, and I'm using JavaScript for the player scripts as well as editor scripts, but I can't figure out how to stop the booleans from reseting once I play my game. I know that I need to serialize the varibles so their value gets saved, but I can't make it work...
Here is the smallest example of one of these scripts
ClickShoot.js :
 var projectile : Transform;
 var spawnPoint : Transform;
 var coolDownTime : float = 0.5f;
 var shootForce : int = 1000;
 
 private var canShoot : boolean = false;
 private var timer : float = 0;
 
 
 function Update () {
     if(projectile != null){
         timer += Time.deltaTime;
         if(timer > coolDownTime){
             canShoot = true;
         }
         else{
             canShoot = false;
         }
         if(Input.GetMouseButtonUp(0) && canShoot){
             var bullet = Instantiate(projectile, spawnPoint.position, transform.rotation);
             bullet.GetComponent.<Rigidbody>().AddForce(transform.forward * shootForce);
             timer = 0;
         }
     }
     else {
             Debug.LogError("No object was assigned to the 'projectile' variable in the inspector. That is mandatory. Script will not execute further");
     }
 }
ClickShootEditor.js :
 #pragma strict
 @SerializeField
 var upas : boolean;
 @SerializeField
 var cooldown : boolean;
 @SerializeField
 var addForce : boolean;
 
 @CustomEditor(ClickShoot)
 class ClickShootEditor extends Editor {
     function OnInspectorGUI(){
         var cs : ClickShoot = target;
         cs.projectile = EditorGUILayout.ObjectField("Projectile", cs.projectile, typeof(Transform));
         
         
         upas = EditorGUILayout.Toggle("Use player as spawn", upas);
         
 
         cooldown = EditorGUILayout.Toggle("Cooldown", cooldown);
         
 
         addForce = EditorGUILayout.Toggle("Add Force", addForce);
         
         if(!upas){
             cs.spawnPoint = EditorGUILayout.ObjectField("Spawn Point", cs.spawnPoint, typeof(Transform));
         }
         else{
             cs.spawnPoint = null;
         }
         if(cooldown){
             cs.coolDownTime = EditorGUILayout.FloatField("Cooldown Time", cs.coolDownTime);
         }
         else{
             cs.coolDownTime = 0;
         }
         if(addForce){
             cs.shootForce = EditorGUILayout.IntField("ShootForce", cs.shootForce);
         }
         else{
             cs.shootForce = 0;
         }
     }
 }
Thanks in advance... Any help is appreciated
               Comment
              
 
               
              Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                