private void HandleSlimeHasSplit(Slime arg1, Slime arg2) { SlimeCameraTargetGroup sctg = Instantiate(slimeCameraTargetGroupPrefab)?.GetComponent <SlimeCameraTargetGroup>(); if (sctg != null) { sctg.slime = activeSlime; slimeCameraTargetGroups.Add(activeSlime, sctg); } arg2.OnSlimeSplit += HandleSlimeHasSplit; arg2.OnGettingDestroyed += HandleSlimeGetsDestroyed; UpdateVirtualCameraTarget(); slimes.Add(arg2); }
private void UpdateVirtualCameraTarget() { if (activeSlime == null || playerVirtualCamera == null) { return; } SlimeCameraTargetGroup sctg = null; if (!slimeCameraTargetGroups.TryGetValue(activeSlime, out sctg)) { sctg = Instantiate(slimeCameraTargetGroupPrefab)?.GetComponent <SlimeCameraTargetGroup>(); if (sctg != null) { sctg.slime = activeSlime; slimeCameraTargetGroups.Add(activeSlime, sctg); } } playerVirtualCamera.m_LookAt = activeSlime.transform; playerVirtualCamera.m_Follow = sctg.transform; // Required SlimeCameraTargetgGroup Component to work correctly! }