我遇到一个问题,让BASH更新我正在处理的脚本中的变量。以下是我的剧本摘录,我遇到了麻烦
using UnityEngine;
using System.Collections;
public class CoinPickup : MonoBehaviour {
void OnTriggerEnter(Collider other) // other is a reference to the other trigger collider we have touched
{
if (other.gameObject.CompareTag ("Player"))
{
gameObject.SetActive (false);
Debug.Log ("Sound should trigger here.");
coinSound = gameObject.GetComponent<AudioSource>();
coinSound.Play();
}
}
}
我的问题是,无论我在尝试什么,RAMSIZE变量永远不会乘以1024.我试图这样做,无论你输入什么数字,它总会被改为mb而不是gb的大小,假设任何小于1024的是gb大小。在脚本早期,RAMSIZE默认为2048,在if语句中似乎永远不会更改。请帮帮忙?
答案 0 :(得分:1)
我发现有三个问题:您在作业中=
周围不应该有空格,您不应该对您指定的变量使用$
(一些$variable
是获取变量值的方式,而不是设置的方式),并且你在某些方面使用RAMSIZE
地点和NEWRAMSIZE
在其他地方。关键路线是:
if [[ "$RAMSIZE" -lt 1024 ]]; then
RAMSIZE=$((RAMSIZE*1024)) # Note: no spaces, no extra $, same variable
echo $NEWRAMSIZE
fi
...
echo "$RAMSIZE" # Same variable
顺便说一句,您可以使用shellcheck.net来发现这样的基本问题。