Jump to content
Unity Insider Forum

UNet NetworkTransform Komponent Problem


swat243

Recommended Posts

NetworkTransform ist ein Komponent,den man Manual zu dem Gameobject zufügen kann .

 

Normal sollte da alles glat laufen,das hat ja Unity gemacht und ich müsse es nur als Komponent mit rein holen^^

 

Aber ich habe das Problem,dass wenn man Z.b ein Spiel startet und 3 in einem Server sind,dass nur der erst gejointe die Sync position von den anderen sieht und die anderen z.b der 3 kein SYnc Position der anderen 2 sieht ?? :o

 

 

Ich Frage mich echt,was das soll,das hat Unity erstellt und es sollte eigentlich reibungslos gehen :blink:

 

 

Also wäre schon Doff,wenns nicht gehen würde,dann müsste ich es mit den Attributen machen,aber da sagt mir Unity ,ich habe Copiler errors ,wenn ich auf start gehe ,aber ohne irgendetwas anzuzeigen :mellow:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich hab nicht auf NetwrokTransform per Script zugegriffen,hab zum testen cubes mit einfachen movment erstellt und den Komponenten

`NetworkTransform` zugefügt,also werde erstmal eine neues Project Öffnen und weiter gucken :)

 

Also NetworkIdentity geht bei mir auch einwandfrei ^^ ^_^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe das Problem gefunden,weil es nicht richtig gehostet wurde :/

 

Also wenn ich auf LocalHost spiele geht es einwand frei

 

also das hier:

 

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Networking;
public class Server_manager : MonoBehaviour {
public NetworkManager manager;
public void Start_server()
{
 manager.StartHost ();
 manager.maxConnections = 3;
 Debug.Log (manager.networkAddress.ToString ());
}

public void join_server()
{
 manager.StartClient ();
 Debug.Log (manager.networkAddress.ToString ());
}

}

 

Aber wenn ich den Server eine IP gebe geht es nicht :huh:

 

 

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Networking;
public class Server_manager : MonoBehaviour {
public NetworkManager manager;
public Text server_IP_for_server;
public void Start_server()
{
 manager.StartHost ();
 manager.networkAddress = (string)server_IP_for_server.text;
 manager.maxConnections = 3;
 Debug.Log (manager.networkAddress.ToString ());
}

public Text Server_ip_to_join;
public void join_server()
{
 manager.StartClient ();
 manager.networkAddress = (string)Server_ip_to_join.text;
 Debug.Log (manager.networkAddress.ToString ());
}

}

 

 

Aber ich muss den Server eine IP geben,damit Welche Joinen können.

Sogar wenn ich die IP falsch eingebe,joint er mit den Anderen,aber dann geht NetworkTransform nicht :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe das Problem gefunden,weil es nicht richtig gehostet wurde :/

 

Also wenn ich auf LocalHost spiele geht es einwand frei

 

also das hier:

 

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Networking;
public class Server_manager : MonoBehaviour {
public NetworkManager manager;
public void Start_server()
{
 manager.StartHost ();
 manager.maxConnections = 3;
 Debug.Log (manager.networkAddress.ToString ());
}

public void join_server()
{
 manager.StartClient ();
 Debug.Log (manager.networkAddress.ToString ());
}

}

 

Aber wenn ich den Server eine IP gebe geht es nicht :huh:

 

 

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Networking;
public class Server_manager : MonoBehaviour {
public NetworkManager manager;
public Text server_IP_for_server;
public void Start_server()
{
 manager.StartHost ();
 manager.networkAddress = (string)server_IP_for_server.text;
 manager.maxConnections = 3;
 Debug.Log (manager.networkAddress.ToString ());
}

public Text Server_ip_to_join;
public void join_server()
{
 manager.StartClient ();
 manager.networkAddress = (string)Server_ip_to_join.text;
 Debug.Log (manager.networkAddress.ToString ());
}

}

 

 

Aber ich muss den Server eine IP geben,damit Welche Joinen können.

Sogar wenn ich die IP falsch eingebe,joint er mit den Anderen,aber dann geht NetworkTransform nicht :D

 

Also dein Code is falsch

 

als erstes ma

 

 

public class Server_Manager : NetworkManager

dann fehlt dir der port als erstes ma beim Hosten und dann beim joinen

 

(string)server_IP_for_server.text

 

kenn ich ds komischerweise garnet ich machs immer .text.ToString();

und als 3. musst du zuerst bevor du deinen client mit dem server verbindest erst die ip port angeben dann kannst du erst connecten

Und wegen ohne ip usw is ganz einfach wennst du keine angibst connectet er mit Local also " 127.0.0.1"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also das Problem mit den TransformNetwork Komponenten ist doch nicht gelöst,nur das Client,der das Spiel erstellt hat,wird für die Anderen geupdatet :/ Die Anderen Bewegen sich und nichts Passiert.

(string) funktioniert gut... -_- -_- ,aber was ist wenn Jemand ein Server erstellen will,da kann nicht Jeder "127.00...." verwenden,ehh ist der Server Automatisch auf LocalHost..........wenn man nichts eingibt.

 

Also der Port ist schon in den Network Manager drin `7777`.. Also wollte nur mal die ip verändern und gucken,ob die Anderen auch wirklich drauf gehen können,aber nichts passiert.

 

 

 

EDIT:

 

Wenn ich zuerst die IP eingebe und beitrete bekomme ich die Errors:

 

1.DNS resolution failed: 11001

 

2.UNet Client Error Connect Error: 11

UnityEngine.Networking.NetworkIdentity:UNetStaticUpdate()

Link zu diesem Kommentar
Auf anderen Seiten teilen

using UnityEngine;

using System.Collections;

using UnityEngine.UI;

using UnityEngine.Networking;

public class Server_manager : NetworkManager {

public Text server_IP_for_server;

public void Start_server()

{

singleton.StartHost ();

singleton.networkAddress = (string)server_IP_for_server.text;

singleton.maxConnections = 3;

singleton.port = 777;

Debug.Log (manager.networkAddress.ToString ());

}

 

public Text Server_ip_to_join;

public void join_server()

{

singleton.StartClient ();

singleton.networkAddress = (string)Server_ip_to_join.text;

singleton.port = 777;

Debug.Log (manager.networkAddress.ToString ());

}

 

 

probiers mal so. Und ist auto create Player aktiviert?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also der Server wird erstellt und man kann sich verbinden.

 

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.Networking;
public class Unet : NetworkManager {
public void Start_server12212211221212121()
{
 singleton.StartHost ();
 singleton.networkAddress = "TMG:COM46463";
 singleton.maxConnections = 3;
 singleton.networkPort = 777;
 Debug.Log (singleton.networkAddress.ToString ());
}
public void join_server21212121212121()
{
 singleton.StartClient ();
 singleton.networkAddress = "TMG:COM46463";
 singleton.networkPort = 777;
 Debug.Log (singleton.networkAddress.ToString ());
}
}

 

Habs nur auf mein PC getestet,also Local.

 

 

Aber NetworkTransform geht immer noch nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kleine Frage, aber wieso änderst du die Netzwerksettings (networkAddress, maxConnections, networkPort) nach dem erstellen/joinen?

 

Also ich bin da noch Unentschlossen,hab die Daten mal vor dem erstellen des Server verändert und habe sie mir mit Debug.log printen,lassen,aber es wurde dann LocalHost und port 7777 angezeigt und der ServerManager wird ja nicht gelöscht bei erstellen des Server,also hab mir gedacht,dass da was schief gelaufen ist,aber muss da noch gucken,Wahrscheinlich ist es das richtige,wenn ich es vor dem Server erstellen mach,ergibt dann ja kein sinn....Weil er die Daten vor dem Erstellen braucht :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das Problem ist gelöst ! :D Also hat bei NetworkIdetity kein Local Player Authority auf true :)

 

Ich frage mich ob du weißt wofür das steht?

 

Mal ne Frage nebenbei warum sync's du dir deine Positionen net selber is normalerweise recht simple und bei kleineren script brauchst du nichtmal 10 Zeilen.

Habe das Networktransform 1. Benutzt aber das war irgendwie total unflüssig dann hab ichs selbst gemacht hat viele andere Vorteile auch.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Glauben gibt es in der Programmiertechnik. Glauben geht man nach in der Kirche.

 

Nein. Eben es steht dafür das der Lokale Client komplette Authorität für dieses Object besitzt somit machen kann was er will.

Was bei einem Spiel eigntl. nicht sein sollte da man sonst leicht hacken könnte.

Was anderes wäre es evntl, bei einem Rennspiel oder so

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...