public void Init(Elemental.Element element = Elemental.Element.NONE) { _instance = this; _rigidbody = GetComponent <Rigidbody>(); SetupStateMachine(); _cameraController = FindObjectOfType <GolfCameraController>(); StopAllForces(); ResetToPosition(InitialPosition); _stateMachine.ChangeState(_waitForInputState); _cameraController.SetInitialCamera(); EventManager.Instance.StartListening(ShootEvent.EventName, PanFinished); _elementalAbsorber = transform.GetComponent <ElementalAbsorber>(); if (element == Elemental.Element.NONE) { return; } if (element != Elemental.Element.ANY) { _elementalAbsorber.CurrentElement = element; return; } List <Elemental.Element> availableColors = new List <Elemental.Element>(); availableColors.Add(Elemental.Element.EARTH); availableColors.Add(Elemental.Element.FIRE); availableColors.Add(Elemental.Element.WATER); _elementalAbsorber.CurrentElement = (Elemental.Element)UnityEngine.Random.Range(0, availableColors.Count); }
public override void Init() { var player = FindObjectOfType <PlayerController>(); playerAbsorber = player.gameObject.GetComponent <ElementalAbsorber>(); playerAbsorber.OnPlayerAbsorbs += OnPlayerAbsorbed; OnPlayerAbsorbed(playerAbsorber.CurrentElement); }