Member 14013003 Ответов: 1

Ошибка CS0131: левая часть присваивания должна быть переменной, свойством или индексатором unity C#


моя проблема в строке 9

ошибка CS0131: левая часть присваивания должна быть переменной, свойством или индексатором Unity C#

Что я уже пробовал:

public GameObject camera;
public Material skybox;
void Start () {
    if (File.Exists (Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments), "backgroundimage.txt")))
    {
        Camera cam = camera.GetComponent<Camera> ();
        cam.clearFlags = CameraClearFlags.Skybox;
        StreamReader reader = new StreamReader((Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "backgroundimage.txt")));
        skybox.SetTexture = reader.ReadLine();
        cam.GetComponent<Skybox> ().material = skybox;
    }
    else
    {
        Camera cam = camera.GetComponent<Camera> ();
        cam.clearFlags = CameraClearFlags.SolidColor;
    }

1 Ответов

Рейтинг:
0

OriginalGriff

Посмотрите на сообщение об ошибке, оно говорит вам, в чем проблема и где.
Итак, посмотрите на строку 9 (CTRL+g приведет вас туда в VS), и это задание:

skybox.SetTexture = reader.ReadLine();
Имя SetTexture подразумевает метод для меня, и вы не можете назначить методу.

Так что посмотрите на документацию (простой Google доставит вас туда): Unity - Scripting API: материал.SetTexture[^]
Да, это метод. Поэтому вам нужно вызвать его и передать ему два параметра:
skybox.SetTexture(reader.ReadLine, ???);
(Или что - то подобное) - и предоставьте ему текстуру, чтобы установить ее, заменив "???" в моем примере.