public MirrorRendererReplacer(MirrorRendererSO original) { renderer = Object.Instantiate(original); renderer.name = original.name + " (Floor Instance)"; mirrors = new List <Mirror>(); }
public PlatformsAppInstaller(PluginMetadata pluginMetadata, Logger logger, PluginConfig config, SceneContext sceneContext) { _pluginMetadata = pluginMetadata; _config = config; _logger = logger; MainSystemInit mainSystemInit = ((PCAppInit)sceneContext .GetField <List <MonoInstaller>, Context>("_monoInstallers") .First(x => x is PCAppInit)) .GetField <MainSystemInit, PCAppInit>("_mainSystemInit"); _mirrorRenderer = mainSystemInit.GetField <MirrorRendererSO, MainSystemInit>("_mirrorRenderer"); }
private void UpdateFloorObjects() { RemoveDestroyedMirrorRenderers(); RemoveDestroyedTransforms(); string[] floorObjectNames; switch (_settings.floorHeightAdjust.value) { case FloorHeightAdjust.PlayersPlaceOnly: floorObjectNames = _playersPlaceObjectNames; break; case FloorHeightAdjust.EntireEnvironment: floorObjectNames = _environmentObjectNames; break; default: ResetFloorObjects(); return; } foreach (var floorObjectName in floorObjectNames) { GameObject floorObject = GameObject.Find(floorObjectName); if (!floorObject) { continue; } _logger.Info($"Moving '{floorObjectName}' to {floorPosition:0.000} m"); if (!_originalPositions.ContainsKey(floorObject.transform)) { _originalPositions.Add(floorObject.transform, floorObject.transform.position); } floorObject.transform.position = _originalPositions[floorObject.transform] + new Vector3(0, floorPosition, 0); foreach (Mirror mirror in floorObject.GetComponentsInChildren <Mirror>()) { MirrorRendererSO mirrorRenderer = mirror.GetPrivateField <MirrorRendererSO>("_mirrorRenderer"); if (!_mirrorRenderers.ContainsKey(mirrorRenderer)) { _mirrorRenderers.Add(mirrorRenderer, new MirrorRendererReplacer(mirrorRenderer)); } _mirrorRenderers[mirrorRenderer].AddMirror(mirror); } } }
internal void Start() { _playerAvatarManager.avatarChanged += OnAvatarChanged; _playerAvatarManager.avatarScaleChanged += OnAvatarScaleChanged; _settings.floorHeightAdjust.changed += OnFloorHeightAdjustChanged; foreach (Mirror mirror in GetComponentsInChildren <Mirror>()) { _logger.Trace($"Replacing {nameof(MirrorRendererSO)} on '{mirror.name}'"); MirrorRendererSO original = mirror.GetField <MirrorRendererSO, Mirror>("_mirrorRenderer"); MirrorRendererSO renderer = Instantiate(original); renderer.name = original.name + " (Moved Floor Instance)"; mirror.SetField("_mirrorRenderer", renderer); } UpdateOffset(); }
public void Construct(MirrorRendererSO mirrorRenderer) { _mirrorRenderer = mirrorRenderer; }
private static void CreateOrUpdateMirrorCamera(MirrorRendererSO __instance) { Camera mirrorCamera = new Traverse(__instance).Field <Camera>("_mirrorCamera").Value; mirrorCamera.cullingMask |= AvatarLayers.kAllLayersMask; }