我正在尝试使文本更改为玩家所剩手榴弹的数量。我已经尝试设置手榴弹的数量3然后开始显示手榴弹的数量是什么为文本也是那样。但我有以下错误:
Assets\Scripts\Throwgrenade.cs(20,24):错误CS0029:无法将类型“int”隐式转换为“UnityEngine.GameObject”
而且
Assets\Scripts\Throwgrenade.cs(23,10):错误CS1624:“Throwgrenade.Update()”的主体不能是迭代器块,因为“void”不是迭代器接口类型
这是我的代码:
public int amountOfGrenades = 3;
public GameObject grenadesText;
public GameObject NOgrenadesText;
void Start()
{
grenadesText = amountOfGrenades;
}
void Update()
{
if (Input.GetKeyDown("q") && amountOfGrenades >= 1)
{
ThrowingGrenade();
}
if(amountOfGrenades == 0)
{
yield return new WaitForSeconds(5.0f);
NOgrenadesText.SetActive(true); // Enable the text so it shows
yield return new WaitForSeconds(5.0f);
NOgrenadesText.SetActive(false); // Disable the text so it is hidden
}
}
>
第一个错误很容易解释。
你可能是说
grenadesText.GetComponent<Text>().text = amountOfGrenades.ToString();
..或者直接制造
public Text grenadesText;
或您正在使用的任何文本组件(例如tmp_text
)
然后不能在update
方法中使用yield
...只能在IEnumerator
方法中使用...
看起来应该有点像
public int amountOfGrenades = 3;
// Simply use the correct type right away
public Text grenadesText;
public GameObject NOgrenadesText;
private void Start()
{
grenadesText.text = amountOfGrenades.ToString();
}
private void Update()
{
// Avoid the stringed versions wherever possible
if (Input.GetKeyDown(KeyCode.Q))
{
if(amountOfGrenades > 0)
{
// I don't know what happens in here
// but whenever you are increasing or decreasing the amountOfGranades value
// you again want to call
// grenadesText.text = amountOfGrenades.ToString();
// in order to update the display
ThrowingGrenade();
}
if(amountOfGrenades == 0)
{
StopAllCoroutines ();
StartCoroutine (NoGrenadesRoutine());
}
}
}
private IEnumerator NoGrenadesRoutine ()
{
yield return new WaitForSeconds(5.0f);
NOgrenadesText.SetActive(true); // Enable the text so it shows
yield return new WaitForSeconds(5.0f);
NOgrenadesText.SetActive(false); // Disable the text so it is hidden
}
考虑: 为什么改变的值会改变的值?
问题内容: 第一个System.out打印 2 并且应该打印,而第二个System打印 65 。我已经用这种语言编程了一年多了,据我所知这是不可能发生的!有什么帮助吗? 上面的代码在两行上都显示 9 。 问题答案: 当你这样做,之前仅仅是一个参考阵列, NO 新阵列已创建并分配给。因此,当您查看自己的价值时,基本上就是查看的价值,反之亦然。只是的别名。这就是为什么在第二张照片中您得到65。 检查该
我正在迭代Java 7循环和Java 8 循环中的列表。Java 8 循环希望其中的变量不会更改。例如: 有人能解释一下为什么吗?是Java 8的弊端吗?
问题内容: 我读了这个问题不可变对象,并留下了关于不可变对象,并最终场一个问题: 为什么我们需要不可变类中的实例变量为最终变量? 例如,考虑以下不可变的类: 如果在上面的代码中没有set方法,而实例变量仅在构造函数中设置,为什么要求将实例变量声明为final? 问题答案: 有没有 要求 这样做的变量。但是,当您确实明确打算永远不更改变量时,通常这样做是一种好习惯,因为这不仅可以使变量避免错别字或其
说我有这条短信 Lorem ipsum dolor sit amet,是一位杰出的献身者。 我想大胆一点 Lorem ipsum dolor sit amet,是一位杰出的献身者。 如果我用Javascript来做这件事 我似乎不能加粗文本,有什么想法吗?
我在用python修改文本时遇到了问题,尽管我看到很多人在使用它 我的代码: