如何通过脚本启用/禁用按钮组件?

时间:2018-10-20 11:13:12

标签: c# unity3d

我正在尝试将屏幕分为2个,并在Unity中将它们用作2个不同的按钮(左,右)。但是对于那些初次玩游戏的人,我想展示按钮的文本和图像来教他们如何做,然后我要禁用按钮的图像和文本,它们仍然可以交互但看不见。

第一次屏幕

First time screen

我该怎么办?

3 个答案:

答案 0 :(得分:0)

我将button.image.enabled = bool value用于图像组件,将button.transform.GetChild(0).gameObject.SetActive(bool value)用于文本。

答案 1 :(得分:0)

我建议只为场景视图中的每个按钮留一个空白,并命名为左右。将您的按钮图像(精灵)拖到场景上并调整其大小,以使相机以正确的位置填充。将boxCollider2D应用于两个父游戏对象(您创建并分别命名为左右的空对象),那么您将需要一些简单的脚本编写。

伪明智的我会说:

您将使用:

void OnMouseDown(){
//button touched
}

查看是否按下了按钮。

教程结束后,您将使用上面提到的代码或类似的代码将图像和文本设置为不可见。该脚本位于每个按钮上。

答案 2 :(得分:0)

比简单地将按钮添加以下内容更简单,更可靠:

// TODO somehow get the reference either to the button GameObject or the Button component
var button;

button.GetComponent<HintsController>().ShowHints(false);

然后从任何其他脚本中,您只需执行例如

router.post('/scanIC', function(req, res, next) {
    var request = require('request')
    var fs = require('fs')
    var url = 'http://tesseract.projectnaptha.com/img/eng_bw.png'
    var filename = 'pic.png'
    var writeFile = fs.createWriteStream(filename)

    request(url).pipe(writeFile).on('close', function() {
    console.log(url, 'saved to', filename)
    Tesseract.recognize(filename)
        .progress(function  (p) { console.log('progress', p)  })
        .catch(err => console.error(err))
        .then(function (result) {
        console.log(result.text)
        process.exit(0)
        })
    });
});

禁用提示。