void Shoot() { timer = 0f; gunLight.enabled = true; gunLine.enabled = true; AudioSource gunshot = GetComponent <AudioSource> (); gunshot.Play(); gunLine.SetPosition(0, transform.position); shootRay.origin = transform.position; shootRay.direction = transform.forward; if (Physics.Raycast(shootRay, out shootHit, range, shootableMask)) { NPCScript enemyHealth = shootHit.collider.GetComponent <NPCScript>(); Rigidbody enemyBody = shootHit.collider.GetComponent <Rigidbody> (); enemyHealth.TakeDamage(shootHit.point); enemyHealth.ApplyForce(enemyBody, shootHit); countText.text = points.ToString(); gunLine.SetPosition(1, shootHit.point); } else { gunLine.SetPosition(1, shootRay.origin + shootRay.direction * range); } }
// Update is called once per frame void OnCollisionEnter(Collision col) { Vector3 enemyposition = enemy.transform.position; NPCScript enemyHealth = enemy.GetComponent <Collider>().GetComponent <NPCScript>(); enemyHealth.TakeDamage(enemyposition); }
void Update() { GameObject closest = null; float distance = Mathf.Infinity; Vector3 position = transform.position; foreach (GameObject target in targets) { if (target != null) { Vector3 diff = target.transform.position - position; float curDistance = diff.sqrMagnitude; if (curDistance < distance) { closest = target; distance = curDistance; enemy = closest.transform; } } } FollowPlayer follow = GetComponent <FollowPlayer> (); Vector3 enemyposition = enemy.transform.position; //if G in clicked attack enemies within distance if (Input.GetKey(KeyCode.G)) { if (enemy) { follow.isFollowing = false; Vector3 offset = enemy.position - myTransform.position; float sqrLen = offset.sqrMagnitude; if (sqrLen < closeDistance * closeDistance) { myTransform.LookAt(enemy); anim.SetBool("attack", true); NPCScript enemyHealth = enemy.GetComponent <Collider>().GetComponent <NPCScript>(); if (enemyHealth != null) { enemyHealth.TakeDamage(enemyposition); } } else { anim.SetBool("attack", false); myTransform.Translate(Vector3.forward * 8 * Time.deltaTime); myTransform.LookAt(enemy); } } } }