Заранее благодарю вас за любой ввод.
По сути, происходит следующее: когда игрок стреляет, сцена сбрасывается
То, что я интерпретирую как происходящее:
- Игрок стреляет лазерным лучом
- Префаб Laserbeam сразу же сталкивается с игроком (насколько я могу судить)
- SceneManager сбрасывает сцену
Я подозреваю два возможных вызывает:
Либо источник моего лазерного луча заставляет созданный projectilePrefab запускать столкновение игрока в этом фрагменте кода:
private void OnCollisionEnter2D (Collision2D collision) { SceneManager.LoadScene (0); // если коллайдер является projectile.Prefab, не запускайте этот фрагмент кода}
В общем, мое столкновение с лазерным лучом не исключает игровой объект игрока:
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
var projectile = Instantiate(
projectilePrefab,
transform.position,
projectilePrefab.transform.rotation);
}
}
Типичные решения, вероятно, будут выглядеть следующим образом:
- Убедитесь, что лазерный луч исходит от игрока, чтобы они не сталкивались.
или в идеале
Коллайдер на моем плеере сможет просто исключить контакт с лазерным лучом как причину для SceneManager сбросить сцену.
Где я застрял, когда дело доходит до тестирования этих решений, является точным синтаксис. Я надеялся, что кто-то, возможно, захочет поделиться своим пониманием, которое умеет делать условные утверждения и тому подобное. Я все еще супер новичок, поэтому, хотя я могу в значительной степени понять то, что читаю и что мне показывают, я все еще застрял перед этим горбом, когда я действительно могу все это проанализировать сам.
По сути, мой идеал может выглядеть (насколько я могу судить) так: «Если коллайдер projectilePrefab, не запускайте SceneManager.LoadScene»
Ура и заранее спасибо!