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:
// 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;
}