我正在尝试从另一个游戏对象上的脚本调用一个函数来播放动画剪辑,但是它给了我以下错误:


  'c:\ Users \ ruanv \ Documents \ Unity中的类型'TitleAnimScript'
  Projects \ Project_MathNinja \ Assets \ Scripts \ TitleAnimScript.cs'
  与导入的类型“ TitleAnimScript”冲突
  'Assembly-CSharp-firstpass,版本= 0.0.0.0,文化=中性,
  PublicKeyToken = null”。使用中定义的类型
  'c:\ Users \ ruanv \ Documents \ Unity
  Projects \ Project_MathNinja \ Assets \ Scripts \ TitleAnimScript.cs”。
  [Assembly-CSharp]


错误在以下“ SceneManagerScript.cs”脚本中:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Animations;

public class SceneManagerScript : MonoBehaviour
{
    [SerializeField]
    private GameObject mainMenuButtons;
    [SerializeField]
    private GameObject levelSelectButtons;

    private TitleAnimScript titleAnimScript;

    void Start()
    {
        // adsf
    }

    public void QuitApp()
    {
        Application.Quit();
    }

    public void LevelSelect()
    {
        mainMenuButtons.SetActive(false);
        titleAnimScript.playAnimClip();
        levelSelectButtons.SetActive(true);
    }
}


这是“ TitleAnimScript.cs”脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Animations;

public class TitleAnimScript : MonoBehaviour
{
    private Animator titleTextAnim;

    void Start()
    {
        titleTextAnim = GetComponent<Animator>();
    }

    public void playAnimClip()
    {
        titleTextAnim.SetTrigger("playClip");
    }
}

最佳答案

听起来您已经在保留文件夹中复制了TitleAnimScript。这些保留文件夹将编译为一个名为Assembly-CSharp-firstpass的独立DLL。它们被创建为两个单独的项目,这就是为什么IDE不会将其视为错误的原因,但是由于您引用的是Assembly-CSharp和Assembly-CSharp-firstpass,因此该解决方案看到了两个版本的TitleAnimScript。

如本页所述,检查您的reserved folders中是否有第二次出现TitleAnimScript。可能是您在某个阶段不小心将其复制了而已。

为了快速参考,这些文件夹是:


编辑
编辑器默认资源
小玩意儿
外挂程式
资源资源
标准资产
流媒体资产

关于c# - Unity类型“TitleAnimScript”与类型“TitleAnimScript”冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50960389/

10-11 01:27