found this moving platform script on unify wiki however getting an error on line 68
‘transform’ is not a member of ‘Object’.
anyway here is the script
#pragma strict
class Route{
var distance : Vector3 = Vector3(0,0,0);
var speed : Vector3 = Vector3(-1,-1,-1); // Put a negative number to use the default value.
var waitTime : float=-1; // Put a negative number to use the default value.
}
var reverseAtEnd : boolean = true; // Reverse the route when it ends, example TODO
var speedDefault : Vector3 = Vector3(0,0,0); // Must be positive
var waitTimeDefault : float = 1.0f;
var route : Route[] = new Route[1];
private var distanceNow : Vector3;
private var speedNow : Vector3;
private var waitTimeNow : float = 0f;
private var waitUntil : float = 0f;
private var index : int = -1;
private var routeIndex : int = 0;
private var way : int = 1;
private var destiny = Vector3(0,0,0);
private var objectsInPlatform : Array = new Array();
function Start(){
if (route.Length==0)
Debug.Log("MovingPlatform: ERROR! NO ROUTE DEFINED!");
destiny = transform.position;
objectsInPlatform.Add(gameObject);
}
function Update(){
if(waitUntil>=0){ // If is waiting. In the first call, go to this part.
if(waitUntil>Time.timeSinceLevelLoad){
// Keep waiting
return;
}else{
// Stops waiting and prepares the next index
waitUntil=-1;
index++;
if(index==route.length){
index=0;
if(reverseAtEnd)
way *= -1;
}
routeIndex = (way==1) ? index : (route.length - 1 - index);
distanceNow = route[routeIndex].distance;
speedNow = (route[routeIndex].speed==null || route[routeIndex].speed[0]<0 || route[routeIndex].speed[1]<0
|| route[routeIndex].speed[2]<0) ? speedDefault : route[routeIndex].speed;
for(var dv : int = 0;dv<3;dv++){ // Calculates the way of velocity with basis of distance.
speedNow[dv] *= (distanceNow[dv]*way>0.0) ? 1 : -1;
}
waitTimeNow = (route[routeIndex].waitTime<0) ? waitTimeDefault : route[routeIndex].waitTime;
destiny = distanceNow*way+transform.position;
}
}
//Calculates the distance to go.
var distanceToGo : Vector3 = speedNow*Time.deltaTime;
var destinyWithoutFix : Vector3 = distanceToGo+transform.position;
for(var d : int = 0;d<3;d++){
distanceToGo[d] = (distanceToGo[d]>0) ?
Mathf.Min(destinyWithoutFix[d],destiny[d]) : Mathf.Max(destinyWithoutFix[d],destiny[d]);
}
distanceToGo-=transform.position;
// Move the objects
for(var i : int = 0;i<objectsInPlatform.length;i++){
if(objectsInPlatform*){*
_ objectsInPlatform*.transform.position+=distanceToGo;_
_ }else{_
_ objectsInPlatform.RemoveAt(i);_
_ i–;_
_ }_
_ }*_
* // Self explain*
* if(destiny==transform.position)*
* waitUntil = Time.timeSinceLevelLoad+waitTimeNow;*
}
function OnTriggerEnter(collider : Collider){
* //Debug.Log("MovingPlatform OnTriggerEnter "+collider.gameObject);*
* AddObject(collider);*
}
function OnTriggerExit(collider : Collider){
* //Debug.Log(“OnTriggerExit”);*
* RemoveObject(collider);*
}
function OnCollisionEnter(collision : Collision) {
* //Debug.Log("MovingPlatform OnCollisionEnter "+collision.collider.gameObject);*
* AddObject(collision.collider);*
}
function OnCollisionExit(collision : Collision) {
* //Debug.Log(“OnCollisionExit”);*
* RemoveObject(collision.collider);*
}
function AddObject(collider : Collider) {
* objectsInPlatform.Add(collider.gameObject);*
}
function RemoveObject(collider : Collider) {
* // Starts on 1 because that position 0 is always this gameObject*
* for(var i : int = 1;i<objectsInPlatform.length;i++){*
_ if(objectsInPlatform*==collider.gameObject){
objectsInPlatform.RemoveAt(i);
i–;
}
}
}*_