- 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