Ошибка в скрипте Unity

155
23 декабря 2018, 22:00

К обьекту прикрепил данный скрипт, цель: автоматическое смещени е обьекта по оси Y, в итоге ничего не срабатывает. В чем проблема?

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 public class move : MonoBehaviour {
    void Start () {
        transform.position.y += 1;
    }
    void Update () {
        transform.position.y += 1;  
    }
}
Answer 1

Вам выдаёт вполне очевидную ошибку - невозможно изменить значение, т.к. оно не является переменной.
transform.position - возвращает вам Vector3.

Vector3 в Unity является значимым типом, который нельзя изменять. Другими словами, вы можете создать вектор с какими-то значениями, например new Vector3(1, 1, 1), но после этого не сможете изменить в нём эти значения. Это связано с оптимизацией производительности и исключения некоторых частых ошибок.

Другими словами, в transform.position вам нужно назначать новый вектор, который будет равен вектору текущего положения + вектор смещения.

transform.position = transform.position + new Vector(0,1,0);

Перегруженный оператор += позволит вам сократить выражение. Он сам возьмёт текущее значение, прибавит к нему ваш вектор и потом назначит обратно.

transform.position += new Vector(0,1,0);
READ ALSO
Вытянуть слово из url

Вытянуть слово из url

Есть ссылки вида:

177
Как заменить видимое значение select option?

Как заменить видимое значение select option?

В моей форме есть выбор нужного параметра

187
Обрезка картинок в папке средствами php

Обрезка картинок в папке средствами php

Есть папка с 6000+ картинкамиОни все разного размера, их нужно порезать под квадрат

154
Как добавить запись с помощью функции file_put_contents в JSON файл

Как добавить запись с помощью функции file_put_contents в JSON файл

задача в том,что нужно с помощью ф-ции

163