首页 > 解决方案 > 通过脚本传递变量的问题

问题描述

我正在制作一个小游戏,玩家需要通过将角色拖到桶中来回答问题。在生成我的角色时,我通过将变量传递给另一个脚本来添加一个 ID。在此之后,该变量将需要传递给另一个脚本,该脚本检查字符的 ID 是否与问题的 ID 匹配。运行游戏并将角色移动到桶中时,不会触发触发器。查看检查器显示所有 ID 都是 0,而它们应该是 0 到 9(每个生成的字符一个)。我在下面附上了我的代码。我尝试使用 return 方法,现在尝试使用 out 参数修饰符,但出现错误:

Assets\Scripts\IDGiver.cs(11,32):错误 CS1001:需要标识符

我不明白我哪里错了。我希望这里有人可以帮助我。这也是我第一次在这里提问,所以我希望我能解释清楚。

角色生成器

foreach (var item in answerText)
{
    savedPosition = new Vector3(Random.Range(9, -9), 1, Random.Range(9, -9));
    Instantiate(myPrefab, savedPosition, Quaternion.identity);
    myPrefab.GetComponentInChildren<TextMeshPro>().text = answerText[answerNumber].ToString();
    answerNumber++;
    iDGiver.LetsWork(ref answerIndex);
    answerIndex++;
}

IDGiver

public class IDGiver : MonoBehaviour
{
    public int answerIndexNumber;
    private BucketTrigger bucketTrigger;
    public int answerIndex;
    public int newAnswerIndex;
    LetsWork(out newAnswerIndex);

    public void LetsWork(out int answerIndex)
    {
        answerIndexNumber = answerIndex;
    } 

    void Awake()
    {
        bucketTrigger = GameObject.FindObjectOfType<BucketTrigger> ();
    }

桶触发器

public class BucketTrigger : MonoBehaviour
{
    int answerIndexNumberCheck;

    public void UpdateIndexNumberCheck(int answerIndexNumber)
    {
        answerIndexNumberCheck = answerIndexNumber;
    }


    void OnTriggerEnter(Collider other)
    {
        if (answerIndexNumberCheck == 1)
        {
            Debug.Log("Test");
        }
    }
}

标签: c#unity3d

解决方案


推荐阅读