void Initialize()
        {
            thisTransform = transform;

            // Get the input type.
            if (inputType != 10)
            { // This tank is not an AI tank.
                inputType = General_Settings_CS.Input_Type;
            }

            // Get the gun camera.
            if (Gun_Camera == null)
            {
                Gun_Camera = GetComponent <Camera>();
            }
            Gun_Camera.rect        = new Rect(0.0f, 0.0f, 1.0f, 1.0f);
            Gun_Camera.enabled     = false;
            Gun_Camera.fieldOfView = Maximum_FOV;
            currentFOV             = Gun_Camera.fieldOfView;
            targetFOV = currentFOV;

            // Get the AudioListener.
            thisListener = GetComponent <AudioListener>();
            if (thisListener == null)
            {
                thisListener = gameObject.AddComponent <AudioListener>();
            }
            thisListener.enabled = false;
            this.tag             = "Untagged";

            // Get the "Camera_Points_Manager_CS" script in the tank.
            if (Camera_Manager_Script == null)
            {
                Camera_Manager_Script = transform.root.GetComponentInChildren <Camera_Points_Manager_CS>();
            }
            if (Camera_Manager_Script == null)
            {
                Debug.LogWarning("'Gun_Camera_CS' cannot find 'Camera_Points_Manager_CS' in the tank.");
                Destroy(this.gameObject);
                return;
            }

            // Set the input script.
            Set_Input_Script(inputType);

            // Prepare the input script.
            if (inputScript != null)
            {
                inputScript.Prepare(this);
            }
        }
 public virtual void Prepare(Camera_Points_Manager_CS managerScript)
 {
     this.managerScript = managerScript;
 }