TheGreatNut
New member
שאלת קוד ביוניטי...
ar speedChange:float; var speedMax:float; private var secondsPast:int; private var currentSpeed:float; private var speedVector3:Vector3; private var motionPhase:String="leftB"; private var firstRun:boolean=false; function Update () { secondsPast=Time.time; if(firstRun==false) { currentSpeed=-speedMax; firstRun=true; } switch(motionPhase) { case "leftB": if(currentSpeed + speedChange >= 0) { currentSpeed = 0; motionPhase = "rightA"; }else{ currentSpeed += speedChange; } break; case "rightA": if(currentSpeed + speedChange >= speedMax) { currentSpeed = speedMax; motionPhase = "rightB"; }else{ currentSpeed += speedChange; } break; case "rightB": if(currentSpeed + speedChange <= 0) { currentSpeed = 0; motionPhase = "leftA"; }else{ currentSpeed -= speedChange; } break; case "leftA": if(currentSpeed + speedChange <= -speedMax) { currentSpeed = -speedMax; motionPhase = "leftB"; }else{ currentSpeed -= speedChange; } break; } } function FixedUpdate() { speedVector3 = Vector3(0, 0, currentSpeed * Time.deltaTime); rigidbody.MovePosition(rigidbody.position + speedVector3); }
ar speedChange:float; var speedMax:float; private var secondsPast:int; private var currentSpeed:float; private var speedVector3:Vector3; private var motionPhase:String="leftB"; private var firstRun:boolean=false; function Update () { secondsPast=Time.time; if(firstRun==false) { currentSpeed=-speedMax; firstRun=true; } switch(motionPhase) { case "leftB": if(currentSpeed + speedChange >= 0) { currentSpeed = 0; motionPhase = "rightA"; }else{ currentSpeed += speedChange; } break; case "rightA": if(currentSpeed + speedChange >= speedMax) { currentSpeed = speedMax; motionPhase = "rightB"; }else{ currentSpeed += speedChange; } break; case "rightB": if(currentSpeed + speedChange <= 0) { currentSpeed = 0; motionPhase = "leftA"; }else{ currentSpeed -= speedChange; } break; case "leftA": if(currentSpeed + speedChange <= -speedMax) { currentSpeed = -speedMax; motionPhase = "leftB"; }else{ currentSpeed -= speedChange; } break; } } function FixedUpdate() { speedVector3 = Vector3(0, 0, currentSpeed * Time.deltaTime); rigidbody.MovePosition(rigidbody.position + speedVector3); }