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

扫一扫,访问微社区

蛮牛译馆

关注:605

当前位置:游戏蛮牛 技术专区 蛮牛译馆

查看: 665|回复: 6

[Unity教程] Unity UI不支持两个玩家解决方案

[复制链接]  [移动端链接]
排名
8375
昨日变化
5

263

主题

301

帖子

1534

积分

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
159865
好友
9
蛮牛币
3979
威望
0
注册时间
2016-8-1
在线时间
626 小时
最后登录
2017-11-19

蛮牛译员

发表于 2017-9-27 16:27:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
UI不支持2个玩家:/自定义方案解决一个图像作为叠加并移动它的位置
画布>(脚本在这里)面板>按钮和您自己的叠加图像。
1.将其添加到包含按钮的主面板。 (不需要事件系统)。
2.创建一个按钮叠加图像并将其分配给脚本(一个图像可以放在一个按钮的顶部)
可以定义你想要使用和测试的玩家,你需要为玩家或输入管理员设置输入...
这样的操作可能会帮助人们制作分屏菜单....没有比下面的脚本再合适的了。

[C#] 纯文本查看 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UIInteraction : MonoBehaviour {

public RectTransform Selected;
GridLayoutGroup glg;
public int i;
float Timer;
public Button[] Buttons;
public bool Player1;
public bool Player2;
// Use this for initialization
void OnEnable () {
    i = 0;
    glg = 
this.GetComponentInChildren<GridLayoutGroup> ();
    Buttons = GetComponentsInChildren<Button>();
}

// Update is called once per frame
void FixedUpdate () {
    if (Player1) {
        float MovementX = Input.GetAxis ("Horizontal");//+ Input.GetAxis ("Horizontal_P1");
        float MovementY = Input.GetAxis ("Vertical");//+ Input.GetAxis ("Vertical_P1");
        Timer += Time.deltaTime;
        if (Timer > 0.3f) {
            if (MovementY >= 0.1f) {
                i += -1;
                Timer = 0f;
            }
            if (MovementY <= -0.1f) {
                i += 1;
                Timer = 0f;
            }
            if (MovementX >= 0.1f) {
                i += 1;
            //  i += -Buttons.Length/glg.constraintCount;
                Timer = 0f;
            }
            if (MovementX <= -0.1f) {
                i += -1;
            //  i += Buttons.Length/glg.constraintCount;
                Timer = 0f;
            }
        } else {

        }
        if (i > Buttons.Length-1) {
            i = 0;
        }
        if (i < 0) {
            i = Buttons.Length-1;
        }
        RectTransform childRec = Buttons [i].GetComponent<RectTransform> ();
        Selected.SetParent (Buttons [i].transform);
        Selected.transform.position = Buttons[i].transform.position;
        Selected.sizeDelta = new Vector2 (childRec.sizeDelta.x, childRec.sizeDelta.y);

        if(Input.GetKeyDown(KeyCode.KeypadEnter)) {
            Buttons [i].onClick.Invoke ();
        }
                 //  if(Input.GetButtonDown("Abtn_P1")){
        //  Buttons [i].onClick.Invoke ();
                    //}
    }
    /*if (Player2) {
        float MovementX = Input.GetAxis ("Horizontal") + Input.GetAxis ("Horizontal_P1");
        float MovementY = Input.GetAxis ("Vertical") + Input.GetAxis ("Vertical_P1");
        Timer += Time.deltaTime;
        if (Timer > 0.3f) {
            if (MovementY >= 0.1f) {
                i += -1;
                Timer = 0f;
            }
            if (MovementY <= -0.1f) {
                i += 1;
                Timer = 0f;
            }
            if (MovementX >= 0.1f) {
                i += -Buttons.Length/glg.constraintCount;
                Timer = 0f;
            }
            if (MovementX <= -0.1f) {
                i +=  Buttons.Length/glg.constraintCount;
                Timer = 0f;
            }
        } else {

        }
        if (i > Buttons.Length-1) {
            i = 0;
        }
        if (i < 0) {
            i = Buttons.Length-1;
        }
        RectTransform childRec = Buttons [i].GetComponent<RectTransform> ();
        Selected.SetParent (Buttons [i].transform);
        Selected.transform.position = Buttons[i].transform.position;
        Selected.sizeDelta = new Vector2 (childRec.sizeDelta.x, childRec.sizeDelta.y);

        if(Input.GetButtonDown("Abtn_P2")) {
            Buttons [i].onClick.Invoke ();
        }
    }
*/
}

}







原文标题:UI no support for 2 players :/ custom solution a image as an overlay and moving it position.




回复

使用道具 举报

排名
55285
昨日变化
43

0

主题

5

帖子

11

积分

Rank: 1

UID
185483
好友
0
蛮牛币
6
威望
0
注册时间
2016-11-21
在线时间
5 小时
最后登录
2017-10-26
发表于 2017-9-27 16:35:05 | 显示全部楼层
非常棒,谢谢分享

回复

使用道具 举报

7日久生情
3721/5000
排名
4267
昨日变化
22

5

主题

3083

帖子

3721

积分

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

UID
209186
好友
5
蛮牛币
4448
威望
0
注册时间
2017-3-1
在线时间
355 小时
最后登录
2018-1-18
发表于 2017-9-27 17:40:12 | 显示全部楼层
不错,谢谢分享

回复

使用道具 举报

7日久生情
2066/5000
排名
4452
昨日变化
21

2

主题

1518

帖子

2066

积分

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

UID
241666
好友
0
蛮牛币
8180
威望
0
注册时间
2017-9-6
在线时间
280 小时
最后登录
2018-1-18
发表于 2017-9-28 06:23:00 来自Mobile--- | 显示全部楼层
感谢分享

回复

使用道具 举报

3偶尔光临
267/300
排名
15731
昨日变化
8

0

主题

200

帖子

267

积分

Rank: 3Rank: 3Rank: 3

UID
254038
好友
0
蛮牛币
218
威望
0
注册时间
2017-11-13
在线时间
33 小时
最后登录
2018-1-10
发表于 2017-11-27 22:08:57 | 显示全部楼层

感谢分享

回复

使用道具 举报

5熟悉之中
839/1000
排名
5090
昨日变化
29

26

主题

367

帖子

839

积分

Rank: 5Rank: 5

UID
219600
好友
4
蛮牛币
1632
威望
0
注册时间
2017-4-27
在线时间
222 小时
最后登录
2018-1-18
发表于 2017-12-21 17:48:07 | 显示全部楼层
感谢分享
[发帖际遇]: fengjing 捡了钱没交公 蛮牛币 降了 3 . 幸运榜 / 衰神榜

回复

使用道具 举报

排名
17163
昨日变化
8

0

主题

32

帖子

73

积分

Rank: 2Rank: 2

UID
250330
好友
0
蛮牛币
87
威望
0
注册时间
2017-10-23
在线时间
15 小时
最后登录
2018-1-11
发表于 2017-12-26 16:19:03 | 显示全部楼层
谢谢楼主的分享
[发帖际遇]: 丶小小点 捡了钱没交公 蛮牛币 降了 1 . 幸运榜 / 衰神榜

回复

使用道具 举报

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

本版积分规则

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