由于游戏中的白天/黑夜周期,我需要根据游戏时间更改游戏时间内烟雾预制件的颜色,但我很难确定如何多次更改它。
我的脚本可以正常使用我想要的起始颜色来实例化预制件,但之后我无法再次更改它。
这是我的代码:
class Smoke1 : MonoBehaviour
{
public GameObject myPrefab;
public static GameObject newSmoke;
public GameObject canvasObject;
void Start()
{
GameObject newSmoke = Instantiate(myPrefab, new Vector3(397, -394, 90), Quaternion.Euler(-90, 0, 0)) as GameObject;
newSmoke.transform.SetParent(canvasObject.transform, false);
newSmoke.transform.localScale = new Vector3(1, 1, 1);
newSmoke.GetComponent<ParticleSystem>().startColor = Color.red;
}
void Update()
{
if (TimeManager.gametimeDecimal < 6.0m)
newSmoke.GetComponent<ParticleSystem>().startColor = Color.blue;
if (TimeManager.gametimeDecimal >= 6.0m && TimeManager.gametimeDecimal <= 8.0m)
newSmoke.GetComponent<ParticleSystem>().startColor = Color.yellow;
if (TimeManager.gametimeDecimal > 8.0m && TimeManager.gametimeDecimal < 19.0m)
newSmoke.GetComponent<ParticleSystem>().startColor = Color.green;
}
当我在游戏时间通过检查员手动更改起始颜色时,它可以正常工作,但我无法确定如何使我的脚本执行此操作。
你可以给我任何建议吗?谢谢!
答案 0 :(得分:2)
您已定义了&#39; newSmoke&#39;在您的Start方法中再次变量,因此当您实例化一个对象时,它不会进入静态变量,而是一个名为相同的局部变量。
因此,您的Start的第一行应更改为:
String username = "joe.bloggs";
SqlCommand sqlQuery = new SqlCommand("SELECT user_id, first_name,last_name FROM users WHERE username = ?username", sqlConnection);
sqlQuery.Parameters.AddWithValue("?username", username);