Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        /// <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>();
            }
        }
Пример #3
0
 public void Register()
 {
     CoreAPI.I.Core.Log.Info("Registring player...");
     CharPhysics = CoreAPI.I.Physics.RegisterCharacter(this);
     //Engine.I.AddFrameIteration((sender, f) => Update()); !!
 }