예제 #1
0
파일: Shotgun.cs 프로젝트: Dizlen/SpiderBot
    // 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);
        }
    }
예제 #2
0
파일: Mouse.cs 프로젝트: Dizlen/SpiderBot
    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");
            }
        }
    }
예제 #3
0
 private void Awake()
 {
     _spiderBot = GetComponentInParent <SpiderBot>();
 }