private void Start() { rb = GetComponent <Rigidbody2D>(); jumpController = GetComponent <JumpController>(); leftRightController = GetComponent <LeftRightController>(); speedController = GetComponent <SpeedController>(); attackController = GetComponent <IAttacker>(); attackedController = GetComponent <IAttacked>(); groundChecker = GetComponentInChildren <GroundChecker>(); fallChecker = GetComponent <FallChecker>(); characterGravityController = GetComponent <CharacterGravityController>(); speedController.enabled = speedControllerEnabled; itemCollector = GetComponentInChildren <ItemCollector>(); animator = GetComponentsInChildren <Animator>() .First(r => r.CompareTag("CharacterGFX")); if (itemCollector != null) { hasItemCollector = true; itemCollector.ItemCollected += () => OnCollectedItem(); itemCollector.ItemDropped += () => OnDroppedItem(); } if (attackedController != null) { hasAttackController = true; attackedController.UnderAttack += direction => OnAttacked(direction); attackedController.AttackFinished += () => OnNoLongerAttack(); } jumpController.JumpEnded += () => OnJumpEnded(); fallChecker.StartedFalling += () => OnStartedFalling(); spawnPoint = new Vector2(transform.position.x, transform.position.y + spawnPointYOffset); }
private void Awake() { jumpController = GetComponentInParent <JumpController>(); }