2016-04-24 4 views
1

Я хочу преобразовать положение нижней стены. Нижняя стенка представляет собой 3D-куб, используемый для столкновения. Вот картина куба и свойств.Unity Cube gameobject Положение трансформации не меняется

enter image description here

Справа от изображения вы можете увидеть бар свойство называется преобразованием. Я хочу получить доступ к этому через скрипт и изменить позицию. Вот код, с которым я пытаюсь это сделать.

void Start() { 


    GameObject bottomWall = GameObject.Find("Bottom"); 
    Bottom bottomScript = bottomWall.GetComponent<Bottom>(); 
    bottomScript.wallPos.y = -Camera.main.orthographicSize * 1000; 
    bottomWall.transform.position.Set(1000, 100, 1000); 
    bottomWall.GetComponent<Transform>().position.Set(100, 100, 100); 
} 

Ничего не происходит, когда я это делаю. Я не могу это сделать, любая помощь с этим чрезвычайно ценится.

ответ

4

Transform.position возвращает копиюVector3 вместо ссылки. Поэтому изменение копии не повлияет на исходную позицию Vector3.

Replace bottomWall.transform.position.Set(1000, 100, 1000); 

с

bottomWall.transform.position = new Vector3(100, 100, 100); 

Не относится к вашей проблеме:

С Bottom является потомком стен, то лучше использовать Walls/Button в вашей Find функции, который расскажет Unity, чтобы найти Bottom GameObject только под Стены Иерархия. Это быстро, когда у вас слишком много GameObjects в сцене.

Таким образом, использование GameObject bottomWall = GameObject.Find("Walls/Bottom");

+0

Awesome! Спасибо! – Luke

+0

@ Luke Вы приветствуете. Я обновил свой ответ о поиске GameObject в дочернем объекте. Это будет полезно в будущем для вас. – Programmer

+0

Это невероятно полезно, спасибо вам больше! – Luke

Смежные вопросы