- Home /
Aim Down Sights Question
I have an Aim Down Sights script for my gun. When I right click, the gun zooms and my arms move to the center of the screen, and when I let go, they move back. The motion is very smooth and is perfect in my eyes. Perfect for Iron Sights. However, I have a scope on one of my guns and It zooms into the gun's body when I zoom in, not the scope. I would like it to play the animation, but when it reaches the center of the screen ( or near it ) it shows a screen where there is a black background, but a circle in the middle with a crosshair. How would I do this? Here is my Aim Down Sights script. var gun : Transform; var nextPos = 0.0; var nextField = 40.0; var nextPos2 = -0.2; var dampVelocity = 0.9; var dampVelocity2 = 0.9; var dampVelocity3 = 0.9;
function Update () {
var newPos = Mathf.SmoothDamp(gun.transform.localPosition.x, nextPos, dampVelocity, .17);
var newField = Mathf.SmoothDamp(Camera.main.fieldOfView, nextField, dampVelocity2, .17);
var newPos2 = Mathf.SmoothDamp(gun.transform.localPosition.y, nextPos2, dampVelocity3, .17);
gun.transform.localPosition.x = newPos;
gun.transform.localPosition.y = newPos2;
Camera.main.fieldOfView = newField;
if (Input.GetButton("Fire2")) {
//adjust viewpoint and gun position
nextField = 40.0;
nextPos = 0.0;
nextPos2 = -0.2;
//slow down turning and movement speed
GetComponent(CharacterController).speed = 1.1;
GetComponent("MouseLook").sensitivityX = 2;
camera.main.GetComponent("MouseLook").sensitivityX = 2;
camera.main.GetComponent("MouseLook").sensitivityY = 2;
} else {
//adjust viewpoint and gun position
nextField = 60.0;
nextPos = 0.5;
nextPos2 = -0.4;
//speed up turning and movement speed
GetComponent(CharacterController).speed = 6;
GetComponent("MouseLook").sensitivityX = 6;
camera.main.GetComponent("MouseLook").sensitivityX = 6;
camera.main.GetComponent("MouseLook").sensitivityY = 6;
}
}
I also have an ADS script that I used to use that would instantly snap to wherever I place a second camera. For this script I would place a camera on the lens of my gun. The problem with this is that it's difficult to set the camera to where it aligns with my bullets and appears right. It also has no movement/animation. Here is that script. var nextPos2 = -0.2; var dampVelocity = 0.9; var dampVelocity2 = 0.9; var dampVelocity3 = 0.9;
function Update () {
var newPos = Mathf.SmoothDamp(gun.transform.localPosition.x, nextPos, dampVelocity, .17);
var newField = Mathf.SmoothDamp(Camera.main.fieldOfView, nextField, dampVelocity2, .17);
var newPos2 = Mathf.SmoothDamp(gun.transform.localPosition.y, nextPos2, dampVelocity3, .17);
gun.transform.localPosition.x = newPos;
gun.transform.localPosition.y = newPos2;
Camera.main.fieldOfView = newField;
if (Input.GetButton("Fire2")) {
//adjust viewpoint and gun position
nextField = 40.0;
nextPos = 0.0;
nextPos2 = -0.2;
//slow down turning and movement speed
GetComponent(CharacterController).speed = 1.1;
GetComponent("MouseLook").sensitivityX = 2;
camera.main.GetComponent("MouseLook").sensitivityX = 2;
camera.main.GetComponent("MouseLook").sensitivityY = 2;
} else {
//adjust viewpoint and gun position
nextField = 60.0;
nextPos = 0.5;
nextPos2 = -0.4;
//speed up turning and movement speed
GetComponent(CharacterController).speed = 6;
GetComponent("MouseLook").sensitivityX = 6;
camera.main.GetComponent("MouseLook").sensitivityX = 6;
camera.main.GetComponent("MouseLook").sensitivityY = 6;
}
}
I don't know how to script really so...yeah. I'm trying to learn but every tutorial assumes I know the very basics, like how to use / ( ) { } ; : . var function function update " " that stuff yeah. Everything is in JavaScript. Thanks.
Answer by Pecek · Feb 03, 2014 at 07:50 AM
I'm using a vector2 for this in my game, every gun has it's own variable for it's target position, this way it will work with every model exactly as I want. For the scope, I would set a vector2 for every sights too(and of course, if the gun has any sight on it, use that position instead).
About the scope-crosshair.. I never tried something like this, so I may be wrong, but I would make it this way when aim button has been pressed - start the animation - when the animation has done - hide the gun, and display the crosshair's image.
Your answer
![](https://koobas.hobune.stream/wayback/20220613132407im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Lining up Fov's 0 Answers
Could anyone help me with this weapon script? 1 Answer
free aim down sights script here 0 Answers
gun scope cam not working 3 Answers
Sensitivity Help? || Scope Zoom 1 Answer