Я должен передать int для одного скрипта другому, но это не просто один скрипт, который находится в одном GameObject. Этот сценарий применяется к трем объектам GameObjects (три оружия, этот сценарий имеет свои боеприпасы и т. Д.), А сценарий съемки находится на камере (поскольку я хочу снимать в середине экрана).
Скрипт на камеру
void Update ()
{
//Si preta el click izquierdo se ejecuta shoot()
if(Input.GetButtonDown("Fire1"))
{
shoot();
}
}
//Le vamos a pasar la variable de la municion, para que solo pueda disparar si le queda
public void shoot(int ammoCargador)
{
RaycastHit hit;
//Raycast desde la camara, hacia delante, la informacion del raycast y con el rango que le demos
if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))
{
Debug.Log(hit.transform.name);
//A quien hemos impactado (), y lo llamamos target
EnemyBase target = hit.transform.GetComponent<EnemyBase>();
//Comprobamos si lo que hemos impactado es un enemigo
if(target !=null)
{
//Si lo es le mandamos la variable de daño
target.TakeDamage(damage);
}
}
Скрипт на оружие
public int ammoCargador= 10, ammoCargadorMax, ammoMochila, ammoMochilaMax;
//Ponemos el GameObject Camara porque es el que lleva el script que nos permite disparar
public GameObject Camara;
private void Start()
{
//Le asignamos que camara se llama Main Camera
Camara = GameObject.Find("Main Camera");
}
void Update ()
{
WeaponShoot Mandar = Camara.transform.GetComponent<WeaponShoot>();
Mandar.shoot(ammoCargador);
}
Я получаю ошибку в скрипте камеры, в shoot();
внутри обновления
(Нет аргумента, соответствующего необходимому формальному параметру)