/// <summary> /// Handles initialization of the controller's various modules /// </summary> /// <param name="physicSystem">The character physics system to use</param> public void Initialize(ICharacterPhysics physicSystem) { if (!initialized) { modulesUnderFixedUpdate = new List <PrioritizedControllerModule>(8); modulesUnderUpdate = new List <PrioritizedControllerModule>(8); // ensure input can be initialized if (settingsForInput.playerInput == null) { Debug.LogException(new System.NullReferenceException("[gw-std-unity] Controller's PlayerInput is null; " + "this must be assigned in order for the controller to work properly. Either assign one in inspector or do so in code before the first frame.")); } else { InitializeInput(); } InitializeCamera(); InitializePhysics(physicSystem); InitializeMovement(); initialized = true; ControllerLoaded?.Invoke(this); } }
/// <summary> /// Initializes the physics module /// </summary> /// <param name="_system">The type of system to use for the physics module</param> public void InitializePhysics(ICharacterPhysics _system) { system = _system; system.Initialize(transform, settingsForPhysics); if (!transform.TryGetComponent(out collider)) { collider = gameObject.AddComponent <CapsuleCollider>(); } }
public void Register() { CoreAPI.I.Core.Log.Info("Registring player..."); CharPhysics = CoreAPI.I.Physics.RegisterCharacter(this); //Engine.I.AddFrameIteration((sender, f) => Update()); !! }