Ошибка CS1061: 'PLAYERCONTROLLER'
<pre>using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoveLeft : MonoBehaviour { public float speed = 20f; private float lowerBound = -25f; private PLAYERCONTROLLER playerControllerScript; // Start is called before the first frame update void Start() { playerControllerScript = GameObject.Find("Player").GetComponent<PLAYERCONTROLLER>(); } // Update is called once per frame void Update() { if (playerControllerScript.gameOver == false) { transform.Translate(Vector3.left * Time.deltaTime * speed); } if (transform.position.y < lowerBound) { Destroy(gameObject); } } }
Что я уже пробовал:
Помогите, пожалуйста.Есть ли в этом что-то неправильное?
error CS1061: 'PLAYERCONTROLLER' does not contain a definition for 'gameOver' and no accessible extension method 'gameOver' accepting a first argument of type 'PLAYERCONTROLLER' could be found (are you missing a using directive or an assembly reference?)
Garth J Lancaster
Почему "PlayerController" написан в верхнем регистре, как здесь
private PLAYERCONTROLLER playerControllerScript;а здесь
playerControllerScript = GameObject.Find("Player").GetComponent<PLAYERCONTROLLER>();
На том маленьком кусочке кода, который вы положили, нет никакой причины - разве это не должен быть PlayerController ? (если только что-то не происходит в другом месте кода, который Вы нам не показали)
ariadna villavicencio gamarra
Это ссылка на другой скрипт, который называется "PLAYERCONTROLLER"
F-ES Sitecore
Это означает, что в PLAYERCONTROLLER нет поля под названием gameOver, все очень просто. Чтобы исправить это, вам нужно убедиться, что есть поле под названием gameOver. Возможно, такое поле действительно существует, но дело обстоит иначе, то есть его можно назвать GameOver. c# чувствителен к регистру, поэтому важно, чтобы регистр был точным. Если это не так, то убедитесь, что gameOver помечен как общедоступный, чтобы к нему можно было получить доступ с помощью кода в других классах.