2016-05-18 3 views
0

Я искал в Интернете проблему, и они всегда приводят к коду. Я пытаюсь сделать масштабирование GameObjects так же, как и с изображением. Поясню, вот изображение меня манипулируя изображение с холста:Масштабирование холста для GameObjects в Unity

enter image description here

Теперь вот образ моего веслом в инспекторе

enter image description here

Весло имеет изображение , ребристый корпус, коробчатый коллайдер и т. д. Но я хочу, чтобы весло могло быть масштабировано, как фоновое изображение масштабируется. Есть ли способ, которым я могу поместить весло в холст, чтобы шкала коллайдера, изображения и т. Д. Масштабировалась. Любая помощь с этим чрезвычайно ценится.

ответ

2

Нет, я не хочу, чтобы ваше решение было простым решением, потому что элементы, которые вы хотите, не обязательно имеют ширину и высоту, что означает что-то в RectTransform.

Например, ваш коллайдер коробки представляет собой трехмерную форму (говоря об этом, возможно, вы захотите использовать BoxCollider2D) В любом случае, компоненты Unity UI реагируют на RectTransforms. Коллайдеры не являются элементами пользовательского интерфейса. Все компоненты, которые говорят о реагируют по-разному:

  • Image является 2d UI компонент с шириной и высотой. Он будет масштабироваться в ваших canevas

  • BoxCollider не является элементом пользовательского интерфейса. он не будет масштабироваться, но вы можете сделать это программно, скопировав значения transform.Rect внутри collider.Size. Я уверен, вы можете найти несколько примеров этого в Интернете

  • Paddle - это ваш собственный компонент, поэтому, конечно, он выполнит только то, что вы его запрограммировали. Я не понимаю, что вы подразумеваете под словом «положить весло в холст». Ваш весло не является графическим элементом. Он не имеет ширины и высоты. Компонент изображения, однако, будет иметь ширину, так как он является компонентом пользовательского интерфейса