Примечание: В условном выражении if отсутствует один знак «=», чтобы быть сравнением, а не присваиванием.
Если это была ошибка опечатки, читайте дальше:
Если я правильно понял, вам нужно только знать, что вы можете ссылаться на эти скрипты друг на друга.
Похоже, вы уже знаете это, потому что вы используете PickupScript в качестве переменной, поэтому я постараюсь обновить sh способы ссылаться на подобные вещи, так что, может быть, это поможет.
Скрипты - это классы, например, GameObject
- тоже класс. Поэтому, когда вы создаете переменную GameObject publi c и назначаете из редактора соответствующий GameObject, вы устанавливаете ссылку.
Вы также можете сделать это, найдя в своей игре сценарий для ссылки, например, по имени TAG .
В вашем случае у вас есть 2 класса, PickUpScript
и GunShot
.
Если они являются частью одного и того же GameObject, вы можете назначить их из редактора, если нет, используйте FindGameObjectsWithTag . Если у вас есть ссылка в каждом скрипте, вы можете назначать значение двунаправленно.
public class PickupScript : MonoBehaviour
{
public bool pickUpBool = false;
public Shotgun shotgun = false;
}
public class Shotgun : MonoBehaviour
{
public bool shotgunBool = false;
public PickupScript pickupScript = false;
private void Start()
{
if (gameObject.GetComponent<PickupScript>().pickUpBool == true)
{
shotgunBool = true;
}
}
}