En este momento estás viendo Error de Unity3D CS0229: falsa ambigüedad entre variables

 – Unity

Error de Unity3D CS0229: falsa ambigüedad entre variables – Unity

Error de Unity3D CS0229: falsa ambigüedad entre variables

– UnityAssets3Free

hola , por aqui Camilo y esta vez os traigo
nueva pregunta

Tengo un problema con Unity (versión 2020.3.5f1 LTS). En particular, moví un proyecto de una computadora a otra y recibo este error varias veces:

Error CS0229 Ambigüedad entre ‘TimeCounter.singleton’ y ‘TimeCounter.singleton’

Sé que este tipo de error ocurre cuando tiene dos variables diferentes con el mismo nombre que el compilador no puede distinguir entre ellas; sin embargo, no tengo esa situación específica. En realidad solo tengo una clase. TimeCounter en mi proyecto, y no hay nombres de variables repetidos.

Traté de solucionar este problema eliminando el proyecto .sln y volviéndolo a crear a través de Unity (como se sugiere aquí), pero no funcionó.

La clase en la que se genera el error es la siguiente:

using System.Collections;
using UnityEngine;
using EventSystem2;

public class TimeCounter : MonoBehaviour

    [SerializeField] float minutesToPlay = 2f;
    float currentTime = 0f;

    public GameEvent endedTimeEvent;

    private static TimeCounter singleton;

    void Awake()
    
        if (!singleton)
        
            singleton = this;
            DontDestroyOnLoad(this);
        
    

    void Start()
    
        currentTime = minutesToPlay * 60f;
    

    IEnumerator Timer()
    
        while (true)
        
            if (currentTime > 0f)
            
                currentTime -= 1f;
                print("current time: " + currentTime);
            
            else 
            
                endedTimeEvent.Raise();
            
            yield return new WaitForSeconds(1);
        
    

    public void StartTimer()
    
        StartCoroutine(nameof(Timer));
    
    
    public void StopTimer()
    
        StopCoroutine(nameof(Timer));
    

    public void ResetTimer()
    
        currentTime = minutesToPlay * 60f;
    

    public float GetTimeToPlayInMilliseconds() => (this.minutesToPlay * 60000);
    
    public float GetTimeToPlayInSeconds() => (this.minutesToPlay * 60);

Esta es la lista de errores de ambigüedad que tengo:

1 respuesta 1

¡Problema resuelto! O TimeCounter.cs el script se duplicó dentro del proyecto Unity (no sé por qué sucedió esto), por lo que el compilador no sabía a qué versión me refería.

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

sin mas,espero que te halla servido

Deja una respuesta