public void Attract() { Vector3 direction = (playerTarget.transform.position - transform.position).normalized; GetComponent <Rigidbody>().MovePosition(transform.position + direction * movementSpeed * Time.deltaTime); if (Vector3.Distance(playerTarget.transform.position, transform.position) < GetComponent <BoxCollider>().bounds.extents.magnitude) { playerTarget.UpdateCollectableValue(GetComponent <Collectable>().type, (int)GetComponent <Collectable>().Value); if (AudioManager.Instance != null && AudioManager.Instance.coinFX != null) { AudioManager.Instance.PlayOneShot(AudioManager.Instance.coinFX); } if (GetComponent <PoolChild>()) { GetComponent <PoolChild>().ReturnToPool(); } else { if (GetComponent <Collectable>().type == CollectableType.Key) { if (hasBeenSpawned) { int currentlyHoldByOwner = lastOwner.Collectables[(int)CollectableType.Key]; KeyReset keyData = lastOwner.KeysReset[currentlyHoldByOwner]; playerTarget.AddKeyInitialPosition(keyData); lastOwner.KeysReset[currentlyHoldByOwner] = null; } else { playerTarget.AddKeyInitialPosition(transform, KeyFrom.Shelter); } } Destroy(this.gameObject); } } }
public void AddKeyInitialPosition(KeyReset _keyData) { int currentlyHold = collectables[(int)CollectableType.Key]; KeysReset[currentlyHold - 1] = _keyData; }
public void AddKeyInitialPosition(Transform _tr, KeyFrom _from) { int currentlyHold = collectables[(int)CollectableType.Key]; KeysReset[currentlyHold - 1] = new KeyReset(_tr, _from); }