2014-01-28 5 views
1

Привет, я не знаю, почему C# имеет синтаксический анализ на моем последнем Curly Bracket, извините, если это очень просто im new для C#, вот код.Неизвестный C# Ошибка

using UnityEngine; 
using System.Collections; 

public class NewBehaviourScript : MonoBehaviour 
{ 
    public string IP = "192.168.0.8"; 
    public int Port = "25001"; 

    void OnGUI() 
    { 
     if(Network.peerType == NetworkPeerType.Disconnected) 
     { 
      if (GUI.Button(new Rect(100,100,100,25),"Join Existing Server")) 
      { 
       Network.Connect(Ip,Port);  
      } 

      if (GUI.Button(new Rect(100,125,100,25),"Create New Server")) 
      { 
       Network.InitializeServer(10,Port); 
       //First Number Above next to port in perenthisies is number of allowed clients/1x Server (# of players allowed to join game.) 
      } 
      else 
      { 
       if(Network.peerType == NetworkPeerType.Client)  
       { 
        GUI.Label(new Rect(100,100,100,25),"Client"); 
        if(GUI.Button (new Rect(100,125,100,25),"Disconnect")) 
        { 
         Network.Disconnect(250); 
        } 
       } 
       if(Network.peerType == NetworkPeerType.Server) 
       { 
        GUI.Label(new Rect(100,100,100,25),"Server"); 
        GUI.Label(new Rect(100,125,100,25),"Connections: " + Network.connections.Length); 

        if(GUI.Button (new Rect(100,125,100,25),"Disconnect")) 
        { 
         Network.Disconnect(250); 

       } 
      } 
     } 
    } 
} 

Последний «}» подходит красным любая помощь будет оценена благодаря спасибо!

Просто так, чтобы люди не путались, он должен быть сервером и клиентом для онлайн-видеоигры, но он не позволит мне запустить игру с ошибкой. Я попытался улучшить форматирование и удалить пустое пространство, но ни один из них не работал, я также убедился, что в конце кода есть подходящее количество закрывающей скобки, поэтому у меня нет идеи, что не так.

+0

Если последний '}' близок к красному, значит, у вас неправильное количество фигурных скобок. Просто проверьте их один за другим и убедитесь, что каждое открывание скобки совпадает с закрытием –

+0

. Если вы получите эту ошибку, просто добавьте a и попробуйте автоформатировать ваш файл. В Visual Studio это Ctrl + k, затем Ctrl + d – AlexanderBrevig

+0

Надеюсь, код, который у вас есть, тот же, что у вас есть на вашей IDE. Вы просто добавили скобку '}' после 'Network.Disconnect (250);' после того, как @Klaus дал свой ответ, поэтому я не могу помочь задаться вопросом –

ответ

7

Добавить закрывающую скобку после:

if(GUI.Button (new Rect(100,125,100,25),"Disconnect")) 
{ 

    Network.Disconnect(250); 

Это отсутствует.

+0

Это правильный ответ. – AlexanderBrevig

+0

Это вызвало другое сообщение об ошибке, которое не может неявно преобразовать строку типа в int? – Bigwater

+0

@ пользователь3244340 это еще одна проблема вообще. Вероятно, вы должны задать новый вопрос об этой ошибке, если не знаете, как ее исправить. Посмотрите номер строки и убедитесь, что указана строка с ошибкой, чтобы люди могли легче вам помочь. –

3

После форматирования кода я вижу, что вам не хватает одной заключительной скобки.

Добавить закрывающую скобу } в самом конце фрагмента кода выше.

+0

Это вызвало еще одну ошибку, говорящую, что не может неявно преобразовать строку типа в int? – Bigwater

+0

@ user3244340 Это отличная проблема из-за этой строки: 'public int Port =" 25001 ";' – rhughes

0

Это ваш код с исправлением. Будьте внимательны к скобкам.

using UnityEngine; 

using System.Collections; 

public class NewBehaviourScript : MonoBehaviour { 

public string IP = "192.168.0.8"; 
    public int Port = "25001"; 

    void OnGUI() 
    { 

     if(Network.peerType == NetworkPeerType.Disconnected) 
     { 

      if (GUI.Button(new Rect(100,100,100,25),"Join Existing Server")) 
      { 

      Network.Connect(Ip,Port); 

      } 



      if (GUI.Button(new Rect(100,125,100,25),"Create New Server")) 
      { 

      Network.InitializeServer(10,Port); 
       //First Number Above next to port in perenthisies is number of allowed clients/1x Server (# of players allowed to join game.) 

      } 

      else 
      { 

      if(Network.peerType == NetworkPeerType.Client) 
       { 


        GUI.Label(new Rect(100,100,100,25),"Client"); 
        if(GUI.Button (new Rect(100,125,100,25),"Disconnect")) 
        { 

         Network.Disconnect(250); 


        } 


       } 
       if(Network.peerType == NetworkPeerType.Server) 
       { 

        GUI.Label(new Rect(100,100,100,25),"Server"); 
        GUI.Label(new Rect(100,125,100,25),"Connections: " + Network.connections.Length); 

        if(GUI.Button (new Rect(100,125,100,25),"Disconnect")) 
        { 

         Network.Disconnect(250); 

        } 
       } 
      } 
     } 
    } 
} 
1

Я ценю этот вопрос не делать с этим, но только, чтобы помочь, ошибка относительно:

не может неявно преобразовать тип строки в целое

может быть решена изменение вашего кода на следующее:

public class NewBehaviourScript : MonoBehaviour { 

    public string IP = "192.168.0.8"; 
    public string Port = "25001"; 

или

public class NewBehaviourScript : MonoBehaviour { 

    public string IP = "192.168.0.8"; 
    public int Port = 25001; 
+0

Как мне изменить, потому что это просто вызывает больше ошибок? – Bigwater

+0

@ user3244340 Если вы откроете новый вопрос, мы сможем помочь вам с другими ошибками. Но не забудьте дать ему хороший разум - это отличная практика! – rhughes

Смежные вопросы