void Update () {
bool transit = true;
if (active) {
float dspeed = speed * Time.deltaTime;
delayedTime += Time.deltaTime;
if (delayedTime <= delay) {
dspeed = 0;
}
float prevPosU = 0, prevPosL = 0;
if (comesFromCeiling) {prevPosU = upperPlatform.transform.localPosition.y;}
if (comesFromFloor) {prevPosL = lowerPlatform.transform.localPosition.y;}
if (extending) {
if (comesFromCeiling) {
upperPlatform.transform.localPosition -= new Vector3(0,dspeed,0);
if (upperPlatform.transform.localPosition.y <= uMin.y) {
upperPlatform.transform.localPosition = uMin;
transit = false;
}
}
if (comesFromFloor) {
lowerPlatform.transform.localPosition += new Vector3(0,dspeed,0);
if (lowerPlatform.transform.localPosition.y >= lMax.y) {
lowerPlatform.transform.localPosition = lMax;
transit = false;
}
}
} else {
if (contractsSlower) {
dspeed = dspeed*0.66f;
}
if (comesFromCeiling) {
upperPlatform.transform.localPosition += new Vector3(0,dspeed,0);
if (upperPlatform.transform.localPosition.y >= uMax.y) {
upperPlatform.transform.localPosition = uMax;
transit = false;
}
}
if (comesFromFloor) {
lowerPlatform.transform.localPosition -= new Vector3(0,dspeed,0);
if (lowerPlatform.transform.localPosition.y <= lMin.y) {
lowerPlatform.transform.localPosition = lMin;
transit = false;
}
}
}
if (!transit ) {
inTransit = false;
hitEnd();
}
GameObject player = GameObject.Find("player");
if (player != null) {
playerController pc = player.GetComponent<playerController>();
if (comesFromCeiling && pc.platContactU == upperPlatform.transform.Find("platBottom").gameObject.GetComponent<Collider>()) {
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y + (upperPlatform.transform.localPosition.y - prevPosU),
player.transform.position.z);
}
if (comesFromFloor && pc.platContactL == lowerPlatform.transform.Find("platTop").gameObject.GetComponent<Collider>()) {
player.transform.position = new Vector3(player.transform.position.x,
player.transform.position.y + (lowerPlatform.transform.localPosition.y - prevPosL),
player.transform.position.z);
}
}
}
if (upperPlatform != null) {
upperBottom.setLight();
upperTop.setLight();
foreach (MapSegmentSide side in upperSides) {
side.setLight();
}
}
if (lowerPlatform != null) {
lowerBottom.setLight();
lowerTop.setLight();
foreach (MapSegmentSide side in lowerSides) {
side.setLight();
}
}
}