// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Mouse0)) { for (var i = 0; i < shots; i++) { var v3Offset = transform.up * Random.Range(0f, accuracy); v3Offset = Quaternion.AngleAxis(Random.Range(0f, 360f), -transform.right) * v3Offset; var v3Hit = -transform.right * range + v3Offset; Debug.DrawRay(transform.position, v3Hit, Color.red); if (Physics.Raycast(transform.position, v3Hit, out hit, range, layermask)) { bot = hit.transform.gameObject.GetComponent <SpiderBot>(); bot.TakeDamage(Random.Range(10, 15), 0); Debug.Log("Hit enemy"); } // Position an object to test pattern //var tr = GameObject.CreatePrimitive(PrimitiveType.Sphere).transform; //tr.localScale = new Vector3(0.1f, 0.1f, 0.1f); //tr.position = v3Hit; } particles.Play(); } if (Input.GetKeyDown(KeyCode.R)) { shotgunAnim.SetBool("Reload", true); } }
void ShootRay() { Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * 10, Color.yellow); if (Input.GetKeyDown(KeyCode.Mouse0)) { shot.Play(); //front of bot if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, 10, frontBot)) { bot = hit.transform.gameObject.GetComponentInParent <SpiderBot>(); bot.TakeDamage(Random.Range(10, 15), 0); Debug.Log("Hit front of bot"); } //back of bot if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, 10, backBot)) { bot = hit.transform.gameObject.GetComponentInParent <SpiderBot>(); bot.TakeDamage(Random.Range(10, 15), 1); Debug.Log("Hit back of bot"); } //left side of bot if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, 10, leftBot)) { bot = hit.transform.gameObject.GetComponentInParent <SpiderBot>(); bot.TakeDamage(Random.Range(10, 15), 2); Debug.Log("Hit left side of bot"); } //right side of bot if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, 10, rightBot)) { bot = hit.transform.gameObject.GetComponentInParent <SpiderBot>(); bot.TakeDamage(Random.Range(10, 15), 3); Debug.Log("Hit right side of bot"); } //right side of bot if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, 10, topBot)) { bot = hit.transform.gameObject.GetComponentInParent <SpiderBot>(); bot.TakeDamage(Random.Range(10, 15), 3); Debug.Log("Hit top of bot"); } } }
private void Awake() { _spiderBot = GetComponentInParent <SpiderBot>(); }