Scroll 如何在unity3d中制作具有此效果的菜单?

Scroll 如何在unity3d中制作具有此效果的菜单?,scroll,unity3d,menu,Scroll,Unity3d,Menu,对不起,我会尽量解释清楚的 我想做一个滑动菜单,你可以选择一个字符。我想让位于中心的角色的大小增加,以知道这是当前角色。当你想要选择一个角色时,可以在Crossy Road游戏中看到这种效果 很抱歉,我无法上传imagen,因为我是该论坛的新手我想我可能可以帮助您,而不需要太多借用的代码。这里有两种可能性: 您有一个透视相机,因此“选定”项目可以更靠近相机 你有一个正交相机,所以你必须缩放东西 对于透视图: List<GameObject> characters; //contain

对不起,我会尽量解释清楚的

我想做一个滑动菜单,你可以选择一个字符。我想让位于中心的角色的大小增加,以知道这是当前角色。当你想要选择一个角色时,可以在Crossy Road游戏中看到这种效果


很抱歉,我无法上传imagen,因为我是该论坛的新手

我想我可能可以帮助您,而不需要太多借用的代码。这里有两种可能性:

  • 您有一个透视相机,因此“选定”项目可以更靠近相机
  • 你有一个正交相机,所以你必须缩放东西
  • 对于透视图:

    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);
    }
    
    列出字符//包含所有字符。
    int selectedIndex=0//索引到所选字符。
    浮动间距=10//字符间距
    无效更新()
    {
    if(Input.GetKeyDown(“RightArrow”))
    {
    选择索引++;
    ApplyChanges();
    }
    if(Input.GetKeyDown(“LeftArrow”))
    {
    选择索引--;
    ApplyChanges();
    } 
    }
    无效更改()
    {
    //确保所选索引在范围内,然后将字符隔开。
    selectedIndex=selectedIndex%字符数。计数();
    空格字符();
    }
    空空格字符()
    {
    对于(int i=0;i
    对于正交摄影机,您需要将“选择字符”transform.scale设置为更大的向量


    这不会使任何东西产生动画效果或看起来很酷。这段代码只会将您的角色捕捉到位。

    我采用的解决方案是将对象附加到scrool rect中的透明按钮,以便使用scrool rect界面方便地管理3d对象

    在这里您可以找到使用scrool rect的官方文档:

    也许我的资产可以为你服务;)


    @MickyDuncan对不起,我会尽量解释得更清楚些。我想做一个滑动菜单,你可以选择一个字符。我想让位于中心的角色的大小增加,以知道这是当前角色。当你想要选择一个角色时,可以在Crossy Road游戏中看到这种效果。抱歉,我无法上传图片,因为我是论坛的新手。谢谢Freddie。您可以通过单击“编辑”将刚才所说的内容弹出到上面的问题中来改进您的问题。这将使我能够推翻否决票。谢谢祝你平安