- Home /
[Solved]Top-down shooter camera recoil effect
Hey everyone.I have been stuck in this for a while and now have run out of ideas.So the problem is i want to make a recoil effect for camera for a top down game i am making.The camera just follow the player using simply being at x and z axis of the target.Now all is well but i want to implement a recoil function where the camera shakes a little for a certain period of time in the direction of the player.I have made a function like this
function Shake(shakeTime: float, shakeDistance: float) {
var startTime: float = Time.time;
neutralPos.x = transform.position.x;
neutralPos.z = transform.position.z;
while (Time.time < startTime + shakeTime) {
transform.position.x = neutralPos.x + (Random.insideUnitSphere.x * 0.2);
transform.position.z = neutralPos.z + (Random.insideUnitSphere.z * 0.2);
yield;
}
transform.position.x = neutralPos.x;
transform.position.z = neutralPos.z;
}
But it just shakes the camera and dosent really care about the direction of the player.So how can i go about shaking or "Recoiling" effect if i want it in a particular direction.
Answer by shaanbhaya · Aug 01, 2014 at 11:40 AM
Solved it .
function Shake2(shakeTime: float, shakeDistance: float)
{
var startTime: float = Time.time;
nut=transform.position;
neutralPos=Target.TransformDirection(Vector3.forward);
while (Time.time < startTime + shakeTime) {
transform.position=Vector3.Lerp(transform.position,nut+neutralPos*shakeDistance,shakeTime);
yield;
}
transform.position=nut;
}
Your answer
Follow this Question
Related Questions
lerping transform.position on a camera 0 Answers
How do I create a shmup in Unity? 2 Answers
FPS: Make animated character weapon follow camera movement 1 Answer
3d rail shooter rails 2 Answers
How to make a camera recoil system 0 Answers