gpt4 book ai didi

javascript - 在 Unityscript 中更改按钮的背景

转载 作者:行者123 更新时间:2023-12-02 14:04:06 24 4
gpt4 key购买 nike

在 Unity 中,我似乎无法将此 C# 代码转换为 javascript (unityscript):

public Color buttonColor;
GetComponent<Image>().color = buttonColor;

这是我尝试过的:

var buttonColor : Color;
GetComponent(Image).color = buttonColor;

像其他问题一样,我并不是想获取颜色对象。我想要一个颜色变量并使用该变量更改按钮的颜色。

我的错误是:NullReferenceException:未将对象引用设置为对象的实例iPhone Investment.Update ()(位于 Assets/__Scripts/iPhone Investment.js:29)

我遇到的另一个错误是:未知标识符:图像

最佳答案

NullReferenceException 错误,这是因为使用 GetComponent 只会获取脚本附加到的 GameObject 上的 Component。该代码行失败,因为脚本附加到带有Image组件的GameObject

将脚本附加到具有 Image 组件的游戏对象,或者首先查找具有 Image 组件的游戏对象,然后对其执行 GetComponent

GameObject.Find("MyImageName").GetComponent(Image).color = buttonColor;

最后,Unity 自动将 0 分配给脚本中声明的 Color 变量的 alpha 值。确保将编辑器中 buttonColoralpha 变量更改为 1,否则当您单击“播放”时图像将会消失

编辑:

对于新错误,您必须将 import UnityEngine.UI; 添加到脚本顶部。由于您提到这是在 Update 函数中完成的,因此您必须在 Update 函数之外执行 GameObject.Find 来缓存 Image 组件稍后使用。

import UnityEngine.UI;

private var myImage:Image;
public var buttonColor : Color;

function Start () {
myImage = GameObject.Find("MyImageName").GetComponent(Image);
}

function Update () {
myImage.color = buttonColor;
}

如果您想更改其他按钮颜色属性,例如 pressedColorhighlightedColordisabledColor,请按如下操作:

import UnityEngine.UI;

private var myButton:Button;
public var buttonColor : Color;

function Start () {
//myButton = GameObject.Find("MyButtonName").GetComponent(Button);
myButton = GameObject.Find("Button").GetComponent(Button);
}

function Update () {

var colorBlock = myButton.colors;
colorBlock.normalColor = new Color(0.0, 0.0, 0.0, 1.0);
colorBlock.highlightedColor = new Color(0, 1, 0.0, 1.0);
colorBlock.disabledColor = new Color(0, 0, 1, 1.0);

myButton.colors = colorBlock;
}

关于javascript - 在 Unityscript 中更改按钮的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40173819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com