我知道之前曾有人问过这个问题here和here。
但是我仍然无法从另一个脚本获取变量。我不知道我在做什么错。
*(一般而言,我真的是编程新手,所以我可能错过了显而易见的东西)
我不断收到错误消息:The name 'points' does not exist in the current context
slimespawner脚本位于画布上。
很抱歉,这个问题太简单了。
这是我要访问的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class slimespawner : MonoBehaviour
{
public int points;
public Text score;
public float xx;
public float yy;
void Start()
{
points = 0;
xx = Random.Range(-32f, 32f);
yy = Random.Range(-18.5f, 18.5f);
}
void Update()
{
score.text = "Score: " + points.ToString();
}
}
这是试图使用points变量的脚本。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class slimecontroller : MonoBehaviour
{
private float movespeed = 0.1f;
public slimespawner slisp;
void Start()
{
slisp = GameObject.Find("Canvas").GetComponent<slimespawner>();
}
void Update()
{
points += 1;
}
}
答案 0 :(得分:1)
使用slisp.points += 1;
答案 1 :(得分:1)
您的代码应如下所示:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class slimecontroller : MonoBehaviour
{
private float movespeed = 0.1f;
public slimespawner slisp;
void Start()
{
slisp = GameObject.Find("Canvas").GetComponent<slimespawner>();
}
void Update()
{
slisp.points += 1;
}
}