Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 当使用GridLayoutGroup时,有没有一种方法可以在另一边显示出来?_Unity3d_User Interface - Fatal编程技术网

Unity3d 当使用GridLayoutGroup时,有没有一种方法可以在另一边显示出来?

Unity3d 当使用GridLayoutGroup时,有没有一种方法可以在另一边显示出来?,unity3d,user-interface,Unity3d,User Interface,假设我有一个GridLayoutGroup,它有4x4个元素。如果我在左上角,按左键,有没有办法让它选择右下角的元素?如果我向上按左下角等等? 这是我在很多游戏菜单中看到的一个功能,我想知道是否可以用Unity中已有的工具重新创建它。 如果没有,是否有一种相当简单的方法自己编写代码? 我还没有很多使用Unity UI的经验,所以我不知道如何使用常规的方式 非常感谢您抽出时间 我想你要找的是,你可以定义在每个方向上下一步选择哪个对象 因此,在用对象填充网格时,您只需要告诉最后一个对象,当按向右键时

假设我有一个GridLayoutGroup,它有4x4个元素。如果我在左上角,按左键,有没有办法让它选择右下角的元素?如果我向上按左下角等等? 这是我在很多游戏菜单中看到的一个功能,我想知道是否可以用Unity中已有的工具重新创建它。 如果没有,是否有一种相当简单的方法自己编写代码? 我还没有很多使用Unity UI的经验,所以我不知道如何使用常规的方式


非常感谢您抽出时间

我想你要找的是,你可以定义在每个方向上下一步选择哪个对象

因此,在用对象填充网格时,您只需要告诉最后一个对象,当按向右键时,它应该选择第一个对象,并且第一个对象应该选择向左移动的最后一个对象

有点像

GridLayoutGroup GridLayoutGroup;
对于(var i=0;i到下一项
var leftItem=gridLayoutGroup.transform.GetChild(i+1.GetComponent();
navigation.selectOnLeft=leftItem;
//右->到最后一项
var rightItem=gridLayoutGroup.transform.GetChild(gridLayoutGroup.transform.childCount-1).GetComponent();
navigation.selectOnRight=rightItem;
}
else if(i==gridLayoutGroup.transform.childCount-1)//最后一项
{
//左->到第一项
var leftItem=gridLayoutGroup.transform.GetChild(0.GetComponent();
navigation.selectOnLeft=leftItem;
//右->上一项
var rightItem=gridLayoutGroup.transform.GetChild(i-1.GetComponent();
navigation.selectOnRight=rightItem;
}
其他//任何其他项目
{
//左->到下一项
var leftItem=gridLayoutGroup.transform.GetChild(i+1.GetComponent();
navigation.selectOnLeft=leftItem;
//右->上一项
var rightItem=gridLayoutGroup.transform.GetChild(i-1.GetComponent();
navigation.selectOnRight=rightItem;
}
}

我认为您要寻找的是,您可以定义在每个方向上下一步选择哪个对象。因此,在用对象填充网格时,您只需要告诉最后一个对象,当按向右键时,它应该选择第一个对象,并且第一个对象应该选择最后一个对象。哇,这很有魅力!谢谢如果这是一个答案而不是评论,我会把它标记为正确的答案!