// Update is called once per frame void Update() { //Red cross positioning if (aiming) { if (targets.Count > 0) { for (int i = 0; i < targets.Count; i++) { crossList[i].position = Camera.main.WorldToScreenPoint(targets[i].position); } } } //Dead Eye Animation Block if (deadeye) { return; } anim.SetFloat("speed", input.Speed); if (!aiming) { WeaponPosition(); } if (Input.GetKeyDown(KeyCode.R)) { SceneManager.LoadSceneAsync(SceneManager.GetActiveScene().name); } if (Input.GetMouseButtonDown(1) && !deadeye) { Aim(true); } if (Input.GetMouseButtonUp(1) && aiming) { if (targets.Count > 0) { DeadEye(true); Sequence s = DOTween.Sequence(); for (int i = 0; i < targets.Count; i++) { s.Append(transform.DOLookAt(targets[i].GetComponentInParent <EnemyScript>().transform.position, .05f).SetUpdate(true)); s.AppendCallback(() => anim.SetTrigger("fire")); int x = i; s.AppendInterval(.05f); s.AppendCallback(() => FirePolish()); s.AppendCallback(() => targets[x].GetComponentInParent <EnemyScript>().Ragdoll(true, targets[x])); s.AppendCallback(() => crossList[x].GetComponent <Image>().color = Color.clear); s.AppendInterval(.35f); } s.AppendCallback(() => Aim(false)); s.AppendCallback(() => DeadEye(false)); } else { Aim(false); } } if (aiming) { input.LookAt(Camera.main.transform.forward + (Camera.main.transform.right * .1f)); RaycastHit hit; Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hit); if (!deadeye) { reticle.color = Color.white; } if (hit.transform == null) { return; } if (!hit.collider.CompareTag("Enemy")) { return; } reticle.color = Color.red; if (!targets.Contains(hit.transform) && !hit.transform.GetComponentInParent <EnemyScript>().aimed) { hit.transform.GetComponentInParent <EnemyScript>().aimed = true; targets.Add(hit.transform); Vector3 convertedPos = Camera.main.WorldToScreenPoint(hit.transform.position); GameObject cross = Instantiate(aimPrefab, canvas); cross.transform.position = convertedPos; crossList.Add(cross.transform); } } }