private void OnTriggerEnter() { PlayerControl player = FindObjectOfType <PlayerControl>(); WeaponSystem weapon = player.GetComponent <WeaponSystem>(); weapon.PutWeaponInHand(weaponConfig); var audioSource = GetComponent <AudioSource>(); audioSource.PlayOneShot(pickUpSFX); GetComponent <CapsuleCollider>().enabled = false; //Destroy(gameObject); }
private void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Player" && hasPlayed == false) { hasPlayed = true; WeaponSystem weaponSystem = other.gameObject.GetComponent <WeaponSystem>(); weaponSystem.PutWeaponInHand(weaponConfig); var audioSource = weaponSystem.GetComponent <AudioSource>(); audioSource.clip = weapongPickUpSoundEffect; audioSource.Play(); Destroy(this.gameObject); } }
/* IMPORTANT: CameraRaycaster hits both WeaponPickupPoint, as well as its parented weapon prefab model. * Data collected here is from the prefab, so need to use GetComponentInParent to get WeaponConfig needed by PutWeaponInHand method*/ void OnMouseOverPickable(GameObject pickable) // reads LMB from CameraRaycaster if pickable layer hit { if (Input.GetMouseButtonUp(0)) // TODO no pickup range - implement { transform.LookAt(pickable.gameObject.transform); WeaponConfig weaponToPick = pickable.GetComponentInParent <WeaponPickupPoint>().GetWeaponConfig(); // TODO split logic for different pickable types weaponSystem.PutWeaponInHand(weaponToPick); Destroy(pickable.gameObject); // TODO implement dropping used weapons } else if (Input.GetMouseButtonDown(1)) // TODO relies on weapon range - change this { transform.LookAt(pickable.gameObject.transform); } }
void OnTriggerEnter(Collider other) { weaponSystem.PutWeaponInHand(weaponConfig); audioSource.PlayOneShot(pickupSoundEffect); }