public override void Init() { try { if (containingAtom?.type != "Person") { SuperController.LogError($"Please apply the ImprovedPoV plugin to the 'Person' atom you wish to possess. Currently applied on '{containingAtom.type}'."); DestroyImmediate(this); return; } _person = containingAtom; _mainCamera = CameraTarget.centerTarget?.targetCamera; _possessor = SuperController .FindObjectsOfType(typeof(Possessor)) .Where(p => p.name == "CenterEye") .Select(p => p as Possessor) .FirstOrDefault(); _headControl = (FreeControllerV3)_person.GetStorableByID("headControl"); _selector = _person.GetComponentInChildren <DAZCharacterSelector>(); InitControls(); Camera.onPreRender += OnPreRender; Camera.onPostRender += OnPostRender; } catch (Exception e) { SuperController.LogError("Failed to initialize Improved PoV: " + e); DestroyImmediate(this); } }