抱歉,我会尽力解释一下。
我想制作一个滑动菜单,您可以在其中选择一个角色。我希望中心的角色大小增加,知道这是当前角色。当您想要选择一个角色时,可以在Crossy Road的游戏中看到效果。
很抱歉,我无法上传图片,因为我是论坛的新用户
答案 0 :(得分:0)
我想我可以帮助你,而不需要太多借用的代码。这里有两种可能性:
透视:
List<GameObject> characters; //contains all character.
int selectedIndex = 0; //index to the selected character.
float spacing = 10; //space between chars
void Update()
{
if(Input.GetKeyDown("RightArrow"))
{
selectIndex++;
ApplyChanges();
}
if(Input.GetKeyDown("LeftArrow"))
{
selectIndex--;
ApplyChanges();
}
}
void ApllyChanges()
{
// Make sure the selected index is within range and then space the characters.
selectedIndex = selectedIndex % character.Count();
SpaceCharacters();
}
void SpaceCharacters()
{
for(int i = 0; i < characters.Count(); ++i)
{
// characters on the left will have a negative spacing and so will be placed to the left and vice versa for characters on the right.
int offset = i - selectedIndex;
characters[i].transform.position = new Vector3(offset * spacing, 0, 0);
}
// Move the selected character closer.
characters[selectedIndex].transform.position = new Vector3(0,0,spacing);
}
对于正交相机,您需要将选择字符transform.scale设置为更大的矢量。
这不会动画任何东西或看起来很酷。此代码只会将您的角色捕捉到位。
答案 1 :(得分:0)
我采用的解决方案是将对象附加到scrool rect中的透明按钮,以便使用scrool rect界面管理3d对象。
在这里您可以找到使用scrool rect的官方文档:http://docs.unity3d.com/Manual/script-ScrollRect.html
也许我的资产可以为您服务;)