无法弄清楚如何从另一个脚本访问int

时间:2019-03-20 12:14:44

标签: c# unity3d

我知道之前曾有人问过这个问题herehere
但是我仍然无法从另一个脚本获取变量。我不知道我在做什么错。
*(一般而言,我真的是编程新手,所以我可能错过了显而易见的东西)

我不断收到错误消息: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;
    }
}

2 个答案:

答案 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;
    }
}