コード例 #1
0
    void ShootLaserFromTargetPositionL(Vector3 targetPosition, Vector3 direction, float length)
    {
        Ray ray = new Ray(targetPosition, direction);

        RaycastHit raycastHit;
        Vector3    endPosition = targetPosition + (length * direction);

        if (grabAction1L.GetStateDown(handTypeL))
        {
            Sound.PlayOneShot(soundReload);
            if (Time.time - aowailop2 >= ti)
            {
                if (AmmoL > 0)
                {
                    float seconds = (float)900 / 9000f;
                    vibra.Execute(0, seconds, 20f / seconds, 20, handTypeL);


                    laserLineRendererL.enabled = true;
                    Sound.PlayOneShot(soundShoot);
                    particleL.Emit(1);

                    if (Physics.Raycast(ray, out raycastHit, length))
                    {
                        if (raycastHit.transform.tag == "Enemy")
                        {
                            if (raycastHit.transform.name == "head")
                            {
                                EnemyShooter target = raycastHit.transform.GetComponentInChildren <EnemyShooter>();
                                if (target != null)
                                {
                                    Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                    GameObject particleGun2 = Instantiate(blood, raycastHit.point, rot);

                                    Destroy(particleGun2, 2f);
                                    target.TakeDamage(100);
                                    print("001");
                                }
                            }
                            else
                            {
                                EnemyShooter target = raycastHit.transform.GetComponent <EnemyShooter>();
                                if (target != null)
                                {
                                    Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                    GameObject particleGun2 = Instantiate(blood, raycastHit.point, rot);


                                    Destroy(particleGun2, 2f);
                                    target.TakeDamage(ShootDamage);
                                }
                            }
                        }



                        if (raycastHit.transform.name == "Militarytarget")
                        {
                            raycastHit.rigidbody.AddForce(-raycastHit.normal * 50f);
                        }



                        if (raycastHit.transform.tag == "headAi")
                        {
                            if (raycastHit.transform.name == "head")
                            {
                                ScriptSitShoot target = raycastHit.transform.GetComponentInChildren <ScriptSitShoot>();
                                if (target != null)
                                {
                                    Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                    GameObject particleGun2 = Instantiate(blood, raycastHit.point, rot);

                                    Destroy(particleGun2, 2f);
                                    target.TakeDamage(100);
                                    print("001");
                                }
                            }
                            else
                            {
                                ScriptSitShoot target = raycastHit.transform.GetComponent <ScriptSitShoot>();
                                if (target != null)
                                {
                                    Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                    GameObject particleGun2 = Instantiate(blood, raycastHit.point, rot);


                                    Destroy(particleGun2, 2f);
                                    target.TakeDamage(ShootDamage);
                                }
                            }
                        }



                        if (raycastHit.transform.tag == "Bomb")
                        {
                            ScriptBome target = raycastHit.transform.GetComponent <ScriptBome>();
                            if (target != null)
                            {
                                Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                GameObject particleGun2 = Instantiate(blood, raycastHit.point, rot);


                                Destroy(particleGun2, 2f);
                                target.TakeDamage(ShootDamage);
                            }
                        }

                        if (raycastHit.transform.tag == "Bossfinal")
                        {
                            ScriptHeadShot target = raycastHit.transform.GetComponent <ScriptHeadShot>();
                            if (target != null)
                            {
                                Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                GameObject particleGun2 = Instantiate(blood, raycastHit.point, rot);


                                Destroy(particleGun2, 2f);
                                target.TakeDamage(10);
                            }
                        }

                        if (raycastHit.transform.tag == "StartGame")
                        {
                            OpenDoor target = raycastHit.transform.GetComponent <OpenDoor>();
                            if (target != null)
                            {
                                Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                GameObject particleGun2 = Instantiate(particleGun, raycastHit.point, rot);


                                Destroy(particleGun2, 2f);
                                target.TakeDamage(ShootDamage);
                            }
                        }

                        if (raycastHit.transform.tag == "lobot")
                        {
                            EnemyShooter2 target = raycastHit.transform.GetComponent <EnemyShooter2>();
                            if (target != null)
                            {
                                Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                GameObject particleGun2 = Instantiate(blood, raycastHit.point, rot);


                                Destroy(particleGun2, 2f);
                                target.TakeDamage(ShootDamage);
                            }
                        }

                        if (raycastHit.transform.tag == "newgame")
                        {
                            SceneManager.LoadScene(0);
                        }

                        if (raycastHit.transform.tag == "hp")
                        {
                            reHp target = raycastHit.transform.GetComponent <reHp>();
                            if (target != null)
                            {
                                Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                GameObject particleGun2 = Instantiate(particleGun, raycastHit.point, rot);

                                Sound.PlayOneShot(soundReHp, 30f);
                                Destroy(particleGun2, 2f);
                                ScriptHPStam.currentHP += 100;
                                target.TakeDamage(500);
                            }
                        }

                        if (raycastHit.transform.tag == "Bullet")
                        {
                            EnemyBullet target = raycastHit.transform.GetComponent <EnemyBullet>();
                            if (target != null)
                            {
                                Quaternion rot = Quaternion.FromToRotation(Vector3.forward, raycastHit.normal);

                                GameObject particleGun2 = Instantiate(particleGun, raycastHit.point, rot);


                                Destroy(particleGun2, 2f);

                                target.TakeDamage(ShootDamage);
                            }
                        }

                        if (raycastHit.transform.tag == "StartGame")
                        {
                            Sound.PlayOneShot(soundReHp, 30f);
                            StartCoroutine(stargame());
                        }



                        AmmoL--;
                    }
                    else
                    {
                        print("Empty");
                    }
                    endPosition = raycastHit.point;
                }

                aowailop2 = Time.time;
            }

            laserLineRendererL.SetPosition(0, targetPosition);
            laserLineRendererL.SetPosition(1, endPosition);
        }
    }