Показать сообщение отдельно
Старый 22.02.2013, 16:42   #915
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Опять встрял и не пойму в чем дело.
Есть два скрипта Plant, Grid. В скрипт Plant я достаю терраин из Grid

public class Grid MonoBehaviour {    
    public  static 
Terrain    thisTerrain;

    
void Awake () {
        
thisTerrain = (Terrain)GetComponent<Terrain>();
}} 
public class Plant MonoBehaviour {
void Start () 
    {
    
transform.position.= (float)Grid.thisTerrain.SampleHeight(transform.position);
}} 
А компилятор кричит что ошибка в строке transform.position.y = (float)Grid.thisTerrain.SampleHeight(transform.pos ition);

error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.position'. Consider storing the value in a temporary variable

Якобы во временных переменных косяк. Но переменные то у меня не временные а публичные и thisTerrain еще и статичная

Разобрался, получается что, transfom.position.y может только хранить значение, но ложить туда нельзя??
И что изменить y, на нужное значение самый простое решение transform.position = newVector3(transform.position.x, 10 , transform.position.z); ??
__________________
(Offline)
 
Ответить с цитированием