En este momento estás viendo Error de UNITY CS0246: No se encontró el tipo de espacio de nombres o el nombre ‘MenuItem’.  ¿Falta una referencia de ensamblado?

 – Unity

Error de UNITY CS0246: No se encontró el tipo de espacio de nombres o el nombre ‘MenuItem’. ¿Falta una referencia de ensamblado? – Unity

Error de UNITY CS0246: No se encontró el tipo de espacio de nombres o el nombre ‘MenuItem’. ¿Falta una referencia de ensamblado?

– UnityAssets3Free

hola , me llamo jorge y esta vez os traigo
esta unity pregunta

Por alguna razón, sigo recibiendo un error de referencia para:

(8.6): error CS0246: No se encontró el tipo o el nombre del espacio de nombres ‘MenuItem’. ¿Falta una referencia de ensamblado?

(24,26): error CS0246: No se encontró el tipo o el nombre del espacio de nombres `SerializedObject’. ¿Falta una referencia de ensamblado?

Código:

using UnityEngine;
using UnityEditor;
using System.Collections;


public class AudioSourceReplacement  

    [MenuItem("FMOD Tools/Replace Audio Emitters")]
    private static void ReplaceEmitters()
    
        AudioSource[] audioSources = Object.FindObjectsOfType<AudioSource>();

        foreach (AudioSource audioSource in audioSources)
        
            if (audioSource.clip == null)
            
                continue;
            
            string eventName = audioSource.clip.name;
            string eventPath = (audioSource.spatialBlend < 0.5f ? "event:/Ambience/2D/" : "event:/Ambience/3D/") + eventName;

            FMODUnity.StudioEventEmitter emitter = audioSource.gameObject.AddComponent<FMODUnity.StudioEventEmitter>();
            emitter.Event = eventPath;
            var so = new SerializedObject(emitter);
            so.ApplyModifiedProperties();
        

        for (int i=0;i<audioSources.Length;i++)
        
            GameObject.DestroyImmediate(audioSources[i]);
        
    

    [MenuItem("FMOD Tools/Force All Emitters Play On Start")]
    private static void EmittersPlayOnStart()
    
        FMODUnity.StudioEventEmitter[] audioSources = Object.FindObjectsOfType<FMODUnity.StudioEventEmitter>();

        foreach (FMODUnity.StudioEventEmitter audioSource in audioSources)
        
            audioSource.PlayEvent = FMODUnity.EmitterGameEvent.ObjectStart;
        
    

2 respuestas 2

Tienes que poner tu script dentro de la carpeta «Editor». «Assets/Editor/AudioSourceReplacement.cs» debería funcionar.

Esto podría suceder porque no colocó este script dentro de una carpeta ‘Editor’. es uno de esos Carpetas Especiales.

nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias

sin mas,hasta la proxima

Deja una respuesta