- Home /
The question is answered, right answer was accepted
how to combine 2 conflicing scripts
i currently have 2 unity scripts acting on my gun in an FPS that i am working on, one of the scripts makes the gun wobble when you move the camera around and the other is a zoom where it makes the gun's sight line up with the camera, when i have both active the gun does not properly line up with the camera.
var gun : Transform;
var nextPos = 0.021;
var nextField = 40.0;
var nextPos2 = -0.09;
var dampVelocity = 0.6;
var dampVelocity2 = 0.6;
var dampVelocity3 = 0.6;
function Update () {
var newPos = Mathf.SmoothDamp(gun.transform.localPosition.x, nextPos,
dampVelocity, .3);
var newField = Mathf.SmoothDamp(Camera.main.fieldOfView, nextField,
dampVelocity2, .3);
var newPos2 = Mathf.SmoothDamp(gun.transform.localPosition.y, nextPos2,
dampVelocity3, .3);
gun.transform.localPosition.x = newPos;
gun.transform.localPosition.y = newPos2;
Camera.main.fieldOfView = newField;
if (Input.GetButton("Fire2")) {
//adjust viewpoint and gun position
nextField = 15.0;
nextPos = -0.0001;
nextPos2 = 0.0464;
//attempt at making the camera turn slower
Camera.main.GetComponent(MouseLook).sensitivityX = 1;
Camera.main.GetComponent(MouseLook).sensitivityY = 1;
} else {
//adjust viewpoint and gun position
nextField = 60.0;
nextPos = 0.25;
nextPos2 = -0.07;
Camera.main.GetComponent(MouseLook).sensitivityX = 6;
Camera.main.GetComponent(MouseLook).sensitivityY = 6;
}
}
and
public var MoveAmount : float = 1;
public var MoveSpeed : float = 2;
public var GUN: GameObject;
public var MoveOnX : float;
public var MoveOnY: float;
public var DefaultPos : Vector3;
public var NewGunPos : Vector3;
public var ONOff : boolean = false;
public var smoveDirection = Vector3.zero;
function Awake(){
DefaultPos = transform.localPosition;
ONOff = true;
}
function LateUpdate () {
if(ONOff == true){
MoveOnX = Input.GetAxis( "Mouse X") * Time.deltaTime * MoveAmount;
MoveOnY = Input.GetAxis( "Mouse Y") * Time.deltaTime * MoveAmount;
NewGunPos = new Vector3 ( DefaultPos.x+ MoveOnX, DefaultPos.y + MoveOnY, DefaultPos.z);
GUN.transform.localPosition =
Vector3.Lerp(GUN.transform.localPosition , NewGunPos, MoveSpeed * Time.deltaTime);
}
else{
ONOff = false;
GUN.transform.localPosition = Vector3.Lerp(GUN.transform.localPosition, DefaultPos ,
MoveSpeed *Time.deltaTime);
}
}
sorry to the long post but i am really new to coding
Answer by confused2 · Aug 22, 2011 at 04:50 AM
Nevermind, i eventually discovered that i could displace the movement script with the zoom scrip's second variables for the zoom, i made it over shoot so much that it foced the sight into the correct position
Follow this Question
Related Questions
Problems with scripts 0 Answers
camera script, allow free movement of the camera up to a certain distance. 1 Answer
How To Add A FX When I Teleport. 0 Answers
Player destroys when he touches particle effect. 1 Answer
Learn Scripting Easy? 5 Answers