возникает ошибки при запуске приложения в unity

На unity хочу вставить рекламу в кликер.

Ошибки:

1)Assets\Scenes\NewBehaviourScript.cs(56,17):errorCS0116:A namespace cannot directly contain members such as fields or methods

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Monetization;
using UnityEngine.EventSystems;

public class NewBehaviourScript : MonoBehaviour
{
    public int score;
public Text clicktext;
    void Start()
{
if (Monetization.isSupported) Monetization.Initialize("3969489",false);
}
}
public void OnPointerClick(PointerEventData eventData)
{
    if (Monetization.IsReady("Video"))
    {
        ShowAdCallbacks options = new ShowAdCallbacks();
        options.finishCallback = HandleShowResult;
        ShowAdPlacmentContent ad = Monetization.GetPlacementContent("Video") as ShowAdPlacmentContent;
        ad.Show(options);
        }
        void HandleShowResult(ShowResult result)
        {
        if (result == ShowResult.finished)
        {
void doublecoin();
        }
        else if (result == ShowResult.Skipped)
        {// авр

        }
        else if (result == ShowResult.Failed)
        {// выап

        }
    }
    {
       score = 0; 
       score = PlayerPrefs.GetInt("Score+",score);
    }
    void Update()
    {
        clicktext.text = score.ToString();   
   }
}
#region Dima
    public void ClickerScore()
    {
        score++;
        PlayerPrefs.SetInt("Score+",score);
    }
    public void Reset()
    {
        PlayerPrefs.DeleteAll();
        score = 0;
    }
#endregion

Ответы (2 шт):

Автор решения: SmorcIRL

У вас сбиты скобки, удалите одну после метода Start и добавте в конце файла.

→ Ссылка
Автор решения: Сергей Мишин

у вас класс закрывается раньше, перед методами

#region Dima
    public void ClickerScore()
    {
        score++;
        PlayerPrefs.SetInt("Score+",score);
    }
    public void Reset()
    {
        PlayerPrefs.DeleteAll();
        score = 0;
    }
#endregion

закрывающую фигурную скобку поместите со строки, расположенной перед этим регионом, в самый конец


Разберитесь в своём коде (если это ваш код). Отформатируйте его как следует и посмотрите что все фигурные скобки корректно открыты и закрыты.

Например в методе Start у условия if, например, не так написаны if (Monetization.isSupported) Monetization.Initialize("3969489",false); } -- нет открывающей фигурной скобки. Метод HandleShowResult почему-то находится внутри метода OnPointerClick. А ещё вот это

{
   score = 0; 
   score = PlayerPrefs.GetInt("Score+",score);
}

Что это? У вас куча синтаксических ошибок, как будто не знаете где ставить скобки. Я могу примерно восстановить код. Но не факт, что он таким задумывался автором, кто бы это ни был.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Monetization;
using UnityEngine.EventSystems;

public class NewBehaviourScript : MonoBehaviour
{
    public int score;
    public Text clicktext;
    
    void Start()
    {
        if (Monetization.isSupported) 
        {
            Monetization.Initialize("3969489",false);
        }
    }

    public void OnPointerClick(PointerEventData eventData)
    {
        if (Monetization.IsReady("Video"))
        {
            ShowAdCallbacks options = new ShowAdCallbacks();
            options.finishCallback = HandleShowResult;
            ShowAdPlacmentContent ad = Monetization.GetPlacementContent("Video") as ShowAdPlacmentContent;
            ad.Show(options);
        }
    }

    void HandleShowResult(ShowResult result)
    {
        if (result == ShowResult.finished)
        {
            doublecoin();
        }
        else if (result == ShowResult.Skipped)
        {
            // авр
        }
        else if (result == ShowResult.Failed)
        {
            // выап
        }
    
       score = 0; 
       score = PlayerPrefs.GetInt("Score+",score);
    }

    void Update()
    {
        clicktext.text = score.ToString();   
    }

    #region Dima
    public void ClickerScore()
    {
        score++;
        PlayerPrefs.SetInt("Score+",score);
    }
    public void Reset()
    {
        PlayerPrefs.DeleteAll();
        score = 0;
    }
    #endregion
}
→ Ссылка