开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:483

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 189|回复: 6

[脚本] Unity登录界面

[复制链接]  [移动端链接]
4四处流浪
477/500
排名
5722
昨日变化
1

27

主题

89

帖子

477

积分

Rank: 4

UID
187553
好友
1
蛮牛币
1740
威望
0
注册时间
2016-11-28
在线时间
177 小时
最后登录
2017-11-17
发表于 6 天前 | 显示全部楼层 |阅读模式
5蛮牛币
本帖最后由 BigHeight 于 2017-11-14 11:09 编辑

请问各位大神,怎么实现在unity中按下Tab键切换输入框(焦点到下一个输入框中)。在不拖挂脚本的情况下实现,通过主控脚本进行调用切换代码,切换代码如何编写?
效果图.gif




回复

使用道具 举报

7日久生情
1737/5000
排名
1726
昨日变化
2

8

主题

283

帖子

1737

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
159103
好友
6
蛮牛币
4715
威望
0
注册时间
2016-8-29
在线时间
776 小时
最后登录
2017-11-17

活力之星

发表于 6 天前 | 显示全部楼层

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

public class InputNavigator : MonoBehaviour, ISelectHandler, IDeselectHandler
{
    EventSystem _system;
    private bool _isSelect = false;

    void Start()
    {
        _system = EventSystem.current;
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Tab) && _isSelect)
        {

            Selectable next = null;
            if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
            {
                next = _system.currentSelectedGameObject.GetComponent<Selectable>().FindSelectableOnUp();
            }
            else
            {
                next = _system.currentSelectedGameObject.GetComponent<Selectable>().FindSelectableOnDown();
            }
            if (next != null)
            {
                InputField inputfield = next.GetComponent<InputField>();
                _system.SetSelectedGameObject(next.gameObject, new BaseEventData(_system));
            }
            else
            {
                Debug.LogError("找不到下一个控件");
            }
        }
    }

    public void OnSelect(BaseEventData eventData)
    {
        _isSelect = true;
    }

    public void OnDeselect(BaseEventData eventData)
    {
        _isSelect = false;
    }
}

//这是我很早之前写过的一个  忘了有没有问题了   你可以试试看

回复

使用道具 举报

4四处流浪
477/500
排名
5722
昨日变化
1

27

主题

89

帖子

477

积分

Rank: 4

UID
187553
好友
1
蛮牛币
1740
威望
0
注册时间
2016-11-28
在线时间
177 小时
最后登录
2017-11-17
 楼主| 发表于 6 天前 | 显示全部楼层
蛮丶牛 发表于 2017-11-14 11:21
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

这个代码还是需要拖挂脚本,,有么有不拖挂脚本 ,直接调用使用的

回复

使用道具 举报

7日久生情
1737/5000
排名
1726
昨日变化
2

8

主题

283

帖子

1737

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
159103
好友
6
蛮牛币
4715
威望
0
注册时间
2016-8-29
在线时间
776 小时
最后登录
2017-11-17

活力之星

发表于 6 天前 | 显示全部楼层
BigHeight 发表于 2017-11-14 12:47
这个代码还是需要拖挂脚本,,有么有不拖挂脚本 ,直接调用使用的

你把这个封装成方法  直接调用不就好了吗

回复

使用道具 举报

6蛮牛粉丝
1026/1500
排名
3658
昨日变化
16

14

主题

320

帖子

1026

积分

Rank: 6Rank: 6Rank: 6

UID
218268
好友
4
蛮牛币
1113
威望
0
注册时间
2017-4-18
在线时间
370 小时
最后登录
2017-11-19

迈向小康

发表于 6 天前 | 显示全部楼层
用数组,保存两个输入框。点Tab调用UI事件中的InputField输入就可以了
[发帖际遇]: 独落伊人春 被钱袋砸中进医院,看病花了 2 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

4四处流浪
477/500
排名
5722
昨日变化
1

27

主题

89

帖子

477

积分

Rank: 4

UID
187553
好友
1
蛮牛币
1740
威望
0
注册时间
2016-11-28
在线时间
177 小时
最后登录
2017-11-17
 楼主| 发表于 5 天前 | 显示全部楼层
蛮丶牛 发表于 2017-11-14 17:47
你把这个封装成方法  直接调用不就好了吗

我试试看

回复

使用道具 举报

4四处流浪
477/500
排名
5722
昨日变化
1

27

主题

89

帖子

477

积分

Rank: 4

UID
187553
好友
1
蛮牛币
1740
威望
0
注册时间
2016-11-28
在线时间
177 小时
最后登录
2017-11-17
 楼主| 发表于 5 天前 | 显示全部楼层
独落伊人春 发表于 2017-11-14 20:05
用数组,保存两个输入框。点Tab调用UI事件中的InputField输入就可以了

求代码指教?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表