我无法添加组件,因为"there is error"但我看不到它。如何解决问题?



我在做一个游戏。一部分处于脱机状态,另一部分使用网络。我已经创建了脚本的副本以脱机工作。我的脚本(单行为(没有错误,但是当我尝试在我的游戏对象单元上添加组件时,给我一个错误:

"无法添加脚本组件'RocketOffline',因为脚本类 找不到。确保没有编译错误,并且 文件名和类名匹配">

我的脚本中没有看到任何错误,并且名称匹配(RocketOffline.cs VS RocketOffline : MonoBehaviour (

我尝试重新导入我的脚本,

重新导入所有资产并将我的所有代码复制到另一个脚本中,但似乎没有任何效果......

我在其他脚本上遇到同样的问题,但我只会显示其中一个

public class RocketOffline : MonoBehaviour
{
    public GameObject Explosion;
    private Vector3 Direction;
    private Color Couleur;
    private float vitesse;
    private float multiplieur;
    int NumPlayer;

    void Explose(Vector3 position)
    {
        ExplosionOffline instance = Instantiate(Explosion, position, new Quaternion()).GetComponent<ExplosionOffline>();
        instance.NumPlayer = NumPlayer;
        foreach (var SmokeEffect in GetComponentsInChildren<ParticleSystem>())
        {
            SmokeEffect.transform.parent = null;
            Destroy(SmokeEffect.gameObject, SmokeEffect.startLifetime);
            SmokeEffect.Stop();
        }
        Destroy(gameObject);
    }
    private void OnCollisionEnter(Collision collision)
    {
        Explose(transform.position);
    }
    private void OnTriggerExit(Collider other)
    {
        GetComponent<Collider>().isTrigger = false;
    }
    public void SetSpeed(Vector3 _Direction, float _Vitesse, JoueurOffline _Player)
    {
        Direction = _Direction;
        vitesse = _Vitesse;
        Couleur = _Player.Couleur;
        NumPlayer = _Player.NumPlayer;
    }
    void Start()
    {
        Rigidbody rigid = GetComponent<Rigidbody>();
        transform.eulerAngles = Vector3.forward * Mathf.Atan2(-Direction.x, Direction.y) * Mathf.Rad2Deg;
        rigid.velocity = Direction * vitesse;
        multiplieur = transform.localScale.y / 10;
        GetComponentInChildren<MeshRenderer>().material.color = Couleur;
    }
    void Update()
    {
        GetComponent<Rigidbody>().velocity = transform.up * vitesse;
        RaycastHit info;
        Physics.Raycast(new Ray(transform.position, GetComponent<Rigidbody>().velocity * Time.deltaTime), out info);
        if (info.distance < vitesse * Time.deltaTime * multiplieur/* && info.collider.gameObject != gameObject && info.collider.gameObject != player.gameObject*/)
        {
            Explose(info.point);
        }
    }
}

我只想像往常一样在 Unity 上将脚本添加到GameObject上。但总是有同样的错误。我的脚本在其他项目上进行了测试,并且工作得很好。我认为这可能是团结的内部错误。

是的,这可能是 Unity 的一个错误。如果您使用的是新的 2019 测试版,那么只需做一个错误报告 :)

我认为您可以尝试重新导入脚本或 rm 项目的库文件夹。

最新更新