Ich habe einen Würfel in meinem Spiel, der zwischen seinem ursprünglichen Zustand und einem größeren Zustand beim Betrachten eines anderen Objekts liegt. Dies funktioniert im Einzelspieler-Modus, aber wenn ich es in den Multiplayer-Modus übertrage, kann ich nicht die richtige Kombination von Optionen finden, um es auf beiden Clients zu aktualisieren (einer davon ist der Host). Jeder Spieler kann seinen eigenen Würfel noch aktivieren, wird aber nicht auf dem anderen Rechner dargestellt. Das Skript befindet sich auf der Schaltfläche mit einer Netzwerkidentität und greift auf den Cube zu, der ebenfalls eine Netzwerkidentität und eine Netzwerktransformation aufweist.Nicht-Spieler-Objekttransformation synchronisieren, die von einem anderen interagierbaren Objekt in Unet/Unity 5 geändert wurde?
Einzelspieler Referenz-Code:
void Update() {
if (Camera.main != null) {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)) {
if (hit.collider.gameObject == gameObject && hit.distance < 5) {
PlatformScale();
} else {
PlatformReset();
}
}
}
}
void PlatformScale() {
platform.transform.localScale = Vector3.Lerp (platform.transform.localScale, platformScale, 3f * Time.deltaTime);
}
void PlatformReset() {
platform.transform.localScale = Vector3.Lerp (platform.transform.localScale, platformStartingScale, 3f * Time.deltaTime);
}
Das Objekt wird nicht instanziiert, muss es funktionieren? Ich habe es gerade in der Szene. Ich habe das Handbuch durchgelesen, aber ich kann nichts finden, was das Aktualisieren von Transformationen auf Nicht-Player-Objekten betrifft, die von einem anderen Gerät gesteuert werden. Wenn Sie ein direktes haben, das mir helfen würde, wäre das großartig. –
Es sollte funktionieren, indem Sie es einfach laichen ... Im Handy entschuldige mich für die schreckliche Formatierung. Kannst du versuchen, der Szene ein leeres Spielobjekt hinzuzufügen, füge ein Skript hinzu: 'public GameObject cubePrefab; öffentliche Überschreibung void OnStartServer() {NetworkServer.Spawn (cubePrefab); } 'Sie müssen ein Prefab Ihres Cubes erstellen und dieses Prefab für die spawnbaren Objekte Ihres Netzwerkmanagers registrieren und es in den cubePrefab-Slot im Inspector für das obige Skript ziehen. Versuchen Sie dann, mit Ihrem Würfel zu interagieren und zu mir zurück zu kommen. Wenn Sie bestätigen können, dass das nicht funktioniert, kann ich Ihnen mehr helfen. – Wafer
Hallo ich werde nicht in der Lage sein, ein paar Stunden zu testen, danke für die Hilfe. Nur so habe ich eine Idee, warum muss das Objekt erzeugt werden, um innerhalb des Spiels geändert zu werden, und muss ich das Skript, das sich auf dem separaten Knopf befindet, zum Spieler bewegen, oder muss dieses Objekt auch erzeugt werden? –