|
|
@@ -43,6 +43,7 @@ public class MoveCharacter : Character
|
|
|
private float backSpeed; //往后退的速度
|
|
|
|
|
|
private Vector3 origPos; //初始位置
|
|
|
+ private float origY;
|
|
|
private float pastTime; //上升已用时间
|
|
|
private float rise = 1;
|
|
|
private float down = -1;
|
|
|
@@ -61,6 +62,7 @@ public class MoveCharacter : Character
|
|
|
spine = transform.GetChild(0).GetChild(0).gameObject;
|
|
|
mesh = spine.GetComponent<MeshRenderer>();
|
|
|
mats = mesh.materials;
|
|
|
+ origY = transform.position.y;
|
|
|
}
|
|
|
|
|
|
private void ChangeMat(int state)
|
|
|
@@ -90,6 +92,7 @@ public class MoveCharacter : Character
|
|
|
origPos = transform.position;
|
|
|
curHeight = origPos.y;
|
|
|
}
|
|
|
+ origPos.x = transform.position.x;
|
|
|
ChangeState(CharacterState.Rise);
|
|
|
floatState = 1;
|
|
|
riseTime = Random.Range(minTime, maxTime);
|
|
|
@@ -145,12 +148,12 @@ public class MoveCharacter : Character
|
|
|
else if (floatState == 3)
|
|
|
{
|
|
|
aniCollider.Play("Fall", 0, 0);
|
|
|
- if (transform.position.y >= origPos.y + 0.05f)
|
|
|
+ if (transform.position.y >= origY + 0.05f)
|
|
|
{
|
|
|
curHeight -= 10 * Time.deltaTime;
|
|
|
transform.position = new Vector3(origPos.x, curHeight, origPos.z);
|
|
|
}
|
|
|
- else if (foot.TrigGround || curHeight <= origPos.y + 0.05f)
|
|
|
+ else if (foot.TrigGround || curHeight <= origY + 0.05f)
|
|
|
{
|
|
|
transform.position = origPos;
|
|
|
ChangeState(CharacterState.Idle);
|