首页 > 解决方案 > 我该怎么做才能解决封闭类型错误?

问题描述

我试图创建这段代码,以便我在 Unity 中的播放器穿过一个触发框并触发特定的音频,但是当我输入这段代码时,它会说有一个封闭错误:

[10:51:37] Assets/DoorFall.cs(7,24):错误 CS0542:“DoorFall”:成员名称不能与其封闭类型相同

我尝试更改不同的名称并移动不同的节点,但没有任何效果。

public class DoorFall : MonoBehaviour {

    public AudioSource DoorFall;

    // Use this for initializatoin
    void Start() {

        DoorFall = GetComponent<AudioSource>();

    }

    // Update is called once per frame
    void Update() {

    }

    void OnCollisionEnter (Collision collision) {
        if (collision.gameObject.tag == "player")
        {

            DoorFall.play();

            Destroy(collision.gameObject);
        }
    }
}

标签: c#

解决方案


您的班级名称DoorFall与班级成员相同public AudioSource DoorFall;以不同的方式命名。

您可能public也不需要该成员。

public class DoorFall : MonoBehaviour {

    private AudioSource doorFallAudioSource;

    // Use this for initializatoin
    void Start() {

        doorFallAudioSource = GetComponent<AudioSource>();

    }

    // Update is called once per frame
    void Update() {

    }

    void OnCollisionEnter (Collision collision) {
        if (collision.gameObject.tag == "player")
        {

            doorFallAudioSource.play();

            Destroy(collision.gameObject);
        }
    }
}

推荐阅读