IEnumerator Shoot() { animator.SetTrigger("Shoot"); audioSource.PlayOneShot(gunShotSound); RaycastHit2D hitInfo = Physics2D.Raycast(firePoint.position, firePoint.right, Mathf.Infinity, ignoreShotLayerMask); if (!hitInfo || hitInfo.distance > range) { lineRenderer.SetPosition(0, firePoint.position); lineRenderer.SetPosition(1, firePoint.position + firePoint.right * range); } else { ObjectPrefs objectPrefs = hitInfo.transform.GetComponent <ObjectPrefs>(); if (objectPrefs != null) { objectPrefs.TakeDamage(damage); } Instantiate(impactEffect, hitInfo.point, Quaternion.identity); lineRenderer.SetPosition(0, firePoint.position); lineRenderer.SetPosition(1, hitInfo.point); } lineRenderer.enabled = true; yield return(new WaitForSeconds(0.01f)); lineRenderer.enabled = false; currentAmmoInClip -= 1; }
IEnumerator GiveDamage(Collider2D hit, float hitDistance) { yield return(new WaitForSeconds(0.2f)); ObjectPrefs objectPrefs = hit.GetComponent <ObjectPrefs>(); if (objectPrefs != null) { int explosionDamage = Mathf.RoundToInt(maxExplosionDamage / hitDistance); objectPrefs.TakeDamage(explosionDamage); } }
private void OnGUI() { GUILayout.Label(string.Format("Level {0}", ObjectPrefs.Get <int>("level"))); if (GUILayout.Button("set level 10")) { ObjectPrefs.Set("level", 10); ObjectPrefs.Save(); } if (GUILayout.Button("set level 20")) { ObjectPrefs.Set("level", 20); ObjectPrefs.Save(); } if (GUILayout.Button("set level 30")) { ObjectPrefs.Set("level", 30); ObjectPrefs.Save(); } }
void Start() { objectPrefs = GetComponentInParent <ObjectPrefs>(); itemPickup = GetComponentInParent <ItemPickup>(); }