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

扫一扫,访问微社区

问答求助

关注:471

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

_____________________________________________________________________________________________________________
问答求助版块规则:

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

[GUI] NGUI被隐藏后就不能显示了?

[复制链接]  [移动端链接]
排名
32056
昨日变化
16

1

主题

9

帖子

20

积分

Rank: 1

UID
197362
好友
0
蛮牛币
25
威望
0
注册时间
2016-12-30
在线时间
8 小时
最后登录
2017-1-6
发表于 2017-1-4 19:11:24 | 显示全部楼层 |阅读模式
5蛮牛币
本帖最后由 shawn_m 于 2017-1-4 20:08 编辑

本人新手,在初始化得时候通过NGUITools.setactive(gameobject,false)的方法,设置一个panel不可见.想通过点击一个场景内的物体,使这个panel可见。但是发现这个界面无论如何也没法可见了。是什么原因呢?
代码如下


[C#] 纯文本查看 复制代码
void Start () {
        print ("star"+this.gameObject);
        NGUITools.SetActive (panel1, false);
    }
    

    void Update(){
            print ("meunState: " + meunState);
            NGUITools.SetActive (panel1, meunState);
        
    }

    public void setMenuVisable(bool v){
        meunState = v;
        print ("v1: " + v + "meunState1: " + meunState);
    }

同时发现Update()方法只在第一次运行时被调用了,后边这个方法就不会被调用。是因为false后panel被销毁了吗?如何才能让未激活的物体再次被激活??求解


回复

使用道具 举报

6蛮牛粉丝
1256/1500
排名
1826
昨日变化
10

1

主题

156

帖子

1256

积分

Rank: 6Rank: 6Rank: 6

UID
114156
好友
0
蛮牛币
3101
威望
0
注册时间
2015-7-18
在线时间
513 小时
最后登录
2017-10-16
发表于 2017-1-5 08:39:17 | 显示全部楼层
你的脚本是挂在panel上的吧!当Set   false之后脚本就不会运行了!你得在其他脚本利用Transform找到panel对象  Set状态true!这样就能看到了。

回复

使用道具 举报

6蛮牛粉丝
1437/1500
排名
2226
昨日变化
1

17

主题

441

帖子

1437

积分

Rank: 6Rank: 6Rank: 6

UID
62384
好友
1
蛮牛币
5278
威望
0
注册时间
2014-12-19
在线时间
475 小时
最后登录
2017-3-17
发表于 2017-1-5 09:28:38 | 显示全部楼层
你的脚本是不是挂在被销毁的这个物体上的 如果这样的话 只会在销毁前执行这个脚本的

回复

使用道具 举报

排名
32056
昨日变化
16

1

主题

9

帖子

20

积分

Rank: 1

UID
197362
好友
0
蛮牛币
25
威望
0
注册时间
2016-12-30
在线时间
8 小时
最后登录
2017-1-6
 楼主| 发表于 2017-1-5 09:53:27 | 显示全部楼层
imsb 发表于 2017-1-5 08:39
你的脚本是挂在panel上的吧!当Set   false之后脚本就不会运行了!你得在其他脚本利用Transform找到panel对 ...

我这个脚本是挂在NGUI的UIROOT上的,应该不会被销毁呀?

回复

使用道具 举报

6蛮牛粉丝
1256/1500
排名
1826
昨日变化
10

1

主题

156

帖子

1256

积分

Rank: 6Rank: 6Rank: 6

UID
114156
好友
0
蛮牛币
3101
威望
0
注册时间
2015-7-18
在线时间
513 小时
最后登录
2017-10-16
发表于 2017-1-5 10:16:16 | 显示全部楼层
那你是怎么找的panel对象?可以把   panel1(是用的GameObject.Find()?  还是用拖?用Transform)  的代码贴上来吗?  SetActive是不会销毁对象的!

回复

使用道具 举报

6蛮牛粉丝
1256/1500
排名
1826
昨日变化
10

1

主题

156

帖子

1256

积分

Rank: 6Rank: 6Rank: 6

UID
114156
好友
0
蛮牛币
3101
威望
0
注册时间
2015-7-18
在线时间
513 小时
最后登录
2017-10-16
发表于 2017-1-5 10:23:29 | 显示全部楼层
   public GameObject tt;
       
        void Start () {
        tt.SetActive(false);
        }
       
        void Update () {
        if (Input.GetKeyDown(KeyCode.A))
            tt.SetActive(true);
        if(Input.GetKeyDown(KeyCode.S))
            tt.SetActive(false);
    }
谔谔  跟NGUI应该差不多吧!

回复

使用道具 举报

排名
32056
昨日变化
16

1

主题

9

帖子

20

积分

Rank: 1

UID
197362
好友
0
蛮牛币
25
威望
0
注册时间
2016-12-30
在线时间
8 小时
最后登录
2017-1-6
 楼主| 发表于 2017-1-5 10:46:08 | 显示全部楼层
本帖最后由 shawn_m 于 2017-1-5 10:47 编辑
imsb 发表于 2017-1-5 10:16
那你是怎么找的panel对象?可以把   panel1(是用的GameObject.Find()?  还是用拖?用Transform)  的代码 ...

你好.整段代码在这里
[C#] 纯文本查看 复制代码
public class Menu : MonoBehaviour {



        public UIPanel panel1;
        private bool meunState = false;


        // Use this for initialization
        void Start () {
                NGUITools.SetActive (panel1, meunState);
        }

         void Update(){

                NGUITools.SetActive (panel1,meunState);

        }

        public void setMenuVisable(bool v){
                meunState = v;
                print ( "meunState1:  " + meunState);
        }
}


panel1 是在界面里拖进来的。在其他类里点击一个建筑调用
[C#] 纯文本查看 复制代码
Menu m = new Menu ();
m.setMenuVisable(true);


返回回来后,输出meunState1这个确实是true。但是发现update()只在游戏开始瞬间被调用了一次。点击建筑后就没被调用,因此panel1就显示不出来。求解,感谢

回复

使用道具 举报

6蛮牛粉丝
1256/1500
排名
1826
昨日变化
10

1

主题

156

帖子

1256

积分

Rank: 6Rank: 6Rank: 6

UID
114156
好友
0
蛮牛币
3101
威望
0
注册时间
2015-7-18
在线时间
513 小时
最后登录
2017-10-16
发表于 2017-1-5 11:07:10 | 显示全部楼层
看起来没问题!如果没用插件肯定都可以了!你试一试SetActiveChildren
[发帖际遇]: imsb 发帖时在路边捡到 1 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复

使用道具 举报

排名
32056
昨日变化
16

1

主题

9

帖子

20

积分

Rank: 1

UID
197362
好友
0
蛮牛币
25
威望
0
注册时间
2016-12-30
在线时间
8 小时
最后登录
2017-1-6
 楼主| 发表于 2017-1-5 11:14:38 | 显示全部楼层
imsb 发表于 2017-1-5 11:07
看起来没问题!如果没用插件肯定都可以了!你试一试SetActiveChildren

可是update(),只在运行时调用了一次,后边就不调用了是什么情况??您知道吗?

回复

使用道具 举报

6蛮牛粉丝
1256/1500
排名
1826
昨日变化
10

1

主题

156

帖子

1256

积分

Rank: 6Rank: 6Rank: 6

UID
114156
好友
0
蛮牛币
3101
威望
0
注册时间
2015-7-18
在线时间
513 小时
最后登录
2017-10-16
发表于 2017-1-5 11:19:42 | 显示全部楼层
shawn_m 发表于 2017-1-5 11:14
可是update(),只在运行时调用了一次,后边就不调用了是什么情况??您知道吗? ...

这点确实挺奇怪的!按理这句print ("meunState: " + meunState);应该输出999吧!原谅我才疏学浅。

回复

使用道具 举报

4四处流浪
483/500
排名
4086
昨日变化
5

0

主题

29

帖子

483

积分

Rank: 4

UID
45593
好友
1
蛮牛币
905
威望
0
注册时间
2014-9-18
在线时间
180 小时
最后登录
2017-3-12
发表于 2017-1-5 15:44:58 | 显示全部楼层
路过说下,new出来的组件是不会执行update啥的,创建Component要调用AddComponent才行

回复

使用道具 举报

排名
32056
昨日变化
16

1

主题

9

帖子

20

积分

Rank: 1

UID
197362
好友
0
蛮牛币
25
威望
0
注册时间
2016-12-30
在线时间
8 小时
最后登录
2017-1-6
 楼主| 发表于 2017-1-5 16:37:12 | 显示全部楼层
Celvin 发表于 2017-1-5 15:44
路过说下,new出来的组件是不会执行update啥的,创建Component要调用AddComponent才行 ...

麻烦详细说一下AddComponent的实现方法。谢谢

回复

使用道具 举报

排名
32056
昨日变化
16

1

主题

9

帖子

20

积分

Rank: 1

UID
197362
好友
0
蛮牛币
25
威望
0
注册时间
2016-12-30
在线时间
8 小时
最后登录
2017-1-6
 楼主| 发表于 2017-1-5 16:45:30 | 显示全部楼层
Celvin 发表于 2017-1-5 15:44
路过说下,new出来的组件是不会执行update啥的,创建Component要调用AddComponent才行 ...

我不想用界面拖拽的方法创建Menu()。如果用AddComponent的方法来获取,应该怎么写?求教

回复

使用道具 举报

4四处流浪
483/500
排名
4086
昨日变化
5

0

主题

29

帖子

483

积分

Rank: 4

UID
45593
好友
1
蛮牛币
905
威望
0
注册时间
2014-9-18
在线时间
180 小时
最后登录
2017-3-12
发表于 2017-1-5 17:51:42 | 显示全部楼层
shawn_m 发表于 2017-1-5 16:45
我不想用界面拖拽的方法创建Menu()。如果用AddComponent的方法来获取,应该怎么写?求教 ...

多看文档吧,文档还有例子咧

回复

使用道具 举报

排名
32056
昨日变化
16

1

主题

9

帖子

20

积分

Rank: 1

UID
197362
好友
0
蛮牛币
25
威望
0
注册时间
2016-12-30
在线时间
8 小时
最后登录
2017-1-6
 楼主| 发表于 2017-1-5 17:57:04 | 显示全部楼层
Celvin 发表于 2017-1-5 17:51
多看文档吧,文档还有例子咧

哎。。。。。困扰好几天了,要是能解决就不过来问了。
[发帖际遇]: shawn_m 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复

使用道具 举报

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

本版积分规则

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