public void Initialize(JoystickLogic joystick) { var model = _modelContainer.GetChild(0); _animationLogic = model.GetComponent <CharacterAnimationLogic>(); // subscribe to joystick var movementData = new CharacterMovementData { Joystick = joystick, MovementMaxSpeed = _config.MovementMaxSpeed, OnCanMoveCheck = CheckCanMove, JoystickData = new JoystickEventData(), CharacterRigidbody = GetComponent <Rigidbody>(), AnimationLogic = _animationLogic }; _movementLogic.Initialize(this, movementData); var pod = _podContainer.GetChild(0); _podController = pod.GetComponent <PodController>(); var podData = new PodControllerData { Owner = transform }; _podController.Initialize(podData); var reachData = new CharacterReachData { OnMeeleTrigger = new CollisionTriggerData { TriggerEnterAction = OnMeleeRangeEnter, TriggerExitAction = OnMeleeRangeExit }, OnDodgeTrigger = new CollisionTriggerData { }, OnDistanceTrigger = new CollisionTriggerData { TriggerEnterAction = OnDistanceRangeEnter, TriggerExitAction = OnDistanceRangeExit } }; _reachLogic.Initialize(reachData); var attackData = new CharacterAttackData { AnimationLogic = _animationLogic }; _attackLogic.Initialize(attackData); }
public void Initialize(CharacterController controller, CharacterMovementData data) { _joystick = data.Joystick; data.JoystickData.OnTouchDown = OnMoveStart; data.JoystickData.OnTouchUp = OnMoveEnd; data.JoystickData.OnDrag = OnMoveEvent; data.JoystickData.OnClick = OnClick; _joystick.InitializeEvents(data.JoystickData); _canMoveCheck = data.OnCanMoveCheck; _maxSpeed = data.MovementMaxSpeed; _characterRigidbody = data.CharacterRigidbody; _animationLogic = data.AnimationLogic; OnDisconnectEvents = _joystick.DisconnectEvents; _controller = controller; _initialized = true; }
public void Init(CharacterMovementData movementData) { this.movementData = movementData; rigidBody.gravityScale = movementData.fallSpeed; }