If Dead,Checkpoint and reset

Checkpoint script:

function OnTriggerEnter(col : Collider) {

if(col.gameObject.tag == “Player”)

col.GetComponent(MyEnd).checkpoint = transform;

}

MyEnd script:

var checkpoint : Transform;

function MyRightEnd() {

transform.position = checkpoint.position;

//All then changes not save

}

How load checkpoint,but then changes not save?

Well first of all you instead of using a transform variable, for your MyEnd script, just make 3 static float variable for x position, y position, and z position. So in in your checkpoint script say:

MyEnd.xPos = transform.position.x;
MyEnd.yPos = transform.position.y;
MyEnd.zPos = transform.position.z;

instead of:

col.GetComponent(MyEnd).checkpoint = transform;

and then in a new script say:

// Import the System.IO Classes
import System;
import System.IO;
// Set the file path variables
static var filePath2 : String = "C:/ProgramData"; //a hidden folder in computers.
static var fileName2 : String = "GameData";

static function Save ()
{
   // create vars
   var saveXPos : String = "" + MyEnd.xPos;
   var saveYPos: String = "" + MyEnd.yPos;
   var saveZPos : String = "" + MyEnd.zPos;

   // Open the file
   var saveStream : StreamWriter = new StreamWriter (filePath2 + "/" + fileName2 );

   // Write the save data
   saveStream.WriteLine(saveXPos);
   saveStream.WriteLine(saveYPos);
   saveStream.WriteLine(saveZPos);


  // Close the file
  saveStream.Close ();

  // Give confirmation that the file has been saved
  print ( "Data Saved at: " + filePath2 + "/" + fileName2 );

}
so now in any script you can just say for example:

SaveScript.Save();

to save your checkpoint progress and to load it make another script:

import System;
import System.IO;
static var filePath : String = "C:/ProgramData";
static var fileName : String = "GameData";

function Load ()
{
     //make vars
     saveXPos : String = "";
     saveYPos : String = "";
     saveZPos : String = "";

     //Opeb the file
     var saveStream : StreamReader = new StreamReader ( filePath + "/" + fileName );

     //read the save data
     saveXPos = saveStream.ReadLine();
     saveYPos = saveStream.ReadLine();
     saveZPos = saveStream.ReadLine();

     //turn the string into numbers
     var intX = float.Parse(saveXPos);
     var intY = float.Parse(saveYPos);
     var intZ = float.Parse(saveZPos);

     //now we have variables to use
     MyEnd.xPos = intX;
     MyEnd.yPos = intY;
     MyEnd.zPos = intZ;
}

…phew, hope that helps! :slight_smile:

haha really cool mate