Top.Mail.Ru
Ответы

Ошибка EndLayoutGroup: BeginLayoutGroup must be called first. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

Вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Weapon : MonoBehaviour
{
public float damage = 30;
public float fireRate = 1;
public float range = 20;
public GameObject muzzleFlash;
public AudioClip shotSFX;
public AudioSource _audioSource;

public Camera_cam;

void Start()
{

}

void Update()
{
if (Input.GetButtonDown("Fire1")) ;
{
Shoot();
}

}

void Shoot()
{
RaycastHit hit;

if (Physics.Raycast(_cam.transform.position, _cam.transform.forward, out hit, range))
{
Debug.Log("Попадание");

}
}
}

По дате
По Рейтингу
Аватар пользователя
Искусственный Интеллект

Ошибка возникает в классе UnityEngine.GUIUtility.
А у вас в вопросе класс Weapon, он тут вроде бы ни при чём.

Мне только вот это не нравится:

if (Input.GetButtonDown("Fire1")) ;
{
Shoot();
}

При соблюдении условия (нажатие кнопки Fire1) будет выполнен пустой оператор "точка с запятой". А затем безусловно произойдет вызов метода Shoot(). Наверное, точка с запятой лишняя в строчке с if.