- Home /
Copy positons of rigged clothing into UI menu choices
We have a rigged avatar with quite a few clothing choices we want to swap out on the users input. To do this, we would like present the user with menus of the different clothing options.
To this end, we are setting up a UI menu template in a child canvas that has place holder positions, for example, of a shirt torso, left and right arms. Using this template we can then populate instances of it with the different types of shirts, and the arms and torso should align just as they are on the rigged avatar. Essentially we are assembling the clothing into a UI copy of the sprites used in the rigging.
To build the template, we are thinking we can just convert the relative positions of the clothing part sprites on the rigged avatar and apply them to the place holder positions in the UI child canvas template.
I've tried several versions of this, but I can't seem to get it right. (We'd also like the positions of each assembled clothing item to be centered within each template instance)
Passing in the world position of each clothing item on the avatar (torso, right arm, left arm) and the target child canvas, this code comes closer than any of the other code I have tried, but it still isn't perfect. It depends greatly on the child canvas scale - if I alter the scale one way or another, the clothing parts get closer together or further apart.
Is there another way to accomplish our goal reliably, and in a way that has some logic to it?
Vector2 tempV2 = camera.WorldToScreenPoint( position );
Vector2 newPoint = new Vector2();
RectTransformUtility.ScreenPointToLocalPointInRectangle( canvasTransform, tempV2, null, out newPoint );
return newPoint;
I've also tried passing in the local positions of the avatar's sprites, but to no avail. Any ideas are greatly appreciated.
Here is a graphic describing what we are trying to do. Note that it only works if we scale the child canvas just right, and we haven't figured out what the perfect scale is - we want this to work at any scale.
Your answer
Follow this Question
Related Questions
EventSystem for Canvas Tight Mesh 0 Answers
Scale 2d Sprite collider size to UIImage collider size 0 Answers
How to freely transform vertices of a Sprite? 0 Answers
Why does my Sprite not appear on my canvas? 1 Answer
PNG Images not showing above a canvas 0 Answers