public void TriggerActorSpawn( ActorableSearchResult result, Vector3 position, Quaternion rotation, Vector3 scale, System.Action <VoosActor> onActorCallback, bool isOffstage, Color tint, Vector3 renderableOffset, Quaternion renderableRotation) { // Do it locally with the full setup. SpawnActor spawnActor = GameObject.Instantiate(actorSpawner, Vector3.zero, Quaternion.identity).GetComponent <SpawnActor>(); spawnActor.onActorCreated = onActorCallback; spawnActor.isOffstage = isOffstage; spawnActor.SetTint(tint); spawnActor.Setup( result, position, rotation, scale, true, renderableOffset, renderableRotation); // Kick off RPC for others. photonView.RPC("TriggerActorSpawnEffectRPC", PhotonTargets.Others, (byte)result.renderableReference.assetType, result.renderableReference.uri, position + renderableOffset, renderableRotation * rotation, scale, tint); }
void TriggerActorSpawnEffectRPC(byte assetType, string uri, Vector3 position, Quaternion rotation, Vector3 scale, Color tint) { SpawnActor spawnActor = GameObject.Instantiate(actorSpawner, position, rotation).GetComponent <SpawnActor>(); ActorableSearchResult dummyResult = new ActorableSearchResult { renderableReference = new RenderableReference { assetType = (AssetType)assetType, uri = uri } }; spawnActor.SetTint(tint); spawnActor.Setup( dummyResult, position, rotation, scale, false, // This is just the preview, assume these offset are baked in. To save banwidth Vector3.zero, Quaternion.identity ); }