• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Strzały zatrzymują się na Colliderze przeciwnika ...

Object Storage Arubacloud
0 głosów
157 wizyt
pytanie zadane 7 września 2019 w C# przez Bezy Bywalec (2,280 p.)
zamknięte 9 września 2019 przez Bezy
Mam problem otóż - Gdy strzele w zombi''ego z pistolety na jego modelu ma zostać uruchomiony  efekt krwi (Particles )

tylko że mój zoombie ma jeden sprehe collider który wykrywa jak dalego od niego znajduję się gracz, wiec gdy w niego strzelam efekt krwii pojawia się na tym właśnie colliderze... Teraz co zrobić aby ten efekt ominął ten collider i pojawił się na zommbie ??
komentarz zamknięcia: Rowziawaznie u dołu
komentarz 8 września 2019 przez piotrsz109 Stary wyjadacz (13,730 p.)
Pokaż kod broni. Sprawdź, czy masz collider IsTriggered
komentarz 8 września 2019 przez Bezy Bywalec (2,280 p.)
Tak mam ustawione collider isTriggered
komentarz 8 września 2019 przez Bezy Bywalec (2,280 p.)
public class gun : MonoBehaviour
{
    public GameObject zombieBlood;

    public GameObject ennemyHit;
    private AudioSource mAudioSrc;
    public Texture2D crosshairTexture;

    public float forceImpact = 30f;
    public float damage = 5.0f;
    public float range = 100f;

    private Animator anim2;

    public int maxAmmo = 10;
    private int currentAmmo;
    public float reloadTIme = 1.15f;

    public Animator animator;


    private Rect position;
    public GameObject impactEffect;
    public ParticleSystem muzzleFlash;
    public GameObject impactEffect2;
    public Camera fpsCam;

    private bool isReloading = false;


    void Start()
    {
        currentAmmo = maxAmmo;


        anim2 = GetComponent<Animator>();


        position = new Rect((Screen.width - crosshairTexture.width) / 2,
                     (Screen.height - crosshairTexture.height) / 2,
                     crosshairTexture.width,
                     crosshairTexture.height);

        mAudioSrc = GetComponent<AudioSource>();
    }



    void OnGUI()
    {
        GUI.DrawTexture(position, crosshairTexture);
    }
    void Update()
    {
        if (isReloading)
            return;

        if (currentAmmo <= 0)
        {
            StartCoroutine(Reload());
            return;

            

        }

        if (isReloading)
            return;

        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }
    IEnumerator Reload()
    {
        isReloading = true;

        Debug.Log("Reloading...");

        animator.SetBool("Reloading", true);

        yield return new WaitForSeconds(reloadTIme - .25f);

        animator.SetBool("Reloading", false);

        yield return new WaitForSeconds(reloadTIme - .25f);

        currentAmmo = maxAmmo;
        isReloading = false;
    }
    void OnEnable()
    {
        isReloading = false;
        animator.SetBool("Reloading", false);
    }


    private void FixedUpdate() 
    {
        AnimatorStateInfo info = anim2.GetCurrentAnimatorStateInfo(0);

        if (info.IsName("FireShoot")) anim2.SetBool("isShoot", false);

       





    }

    void Shoot()
    {
        currentAmmo--;

        anim2.SetBool("isShoot", true);


        mAudioSrc.Play();
        muzzleFlash.Play();

        RaycastHit hit;
        if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))
        {
            Debug.Log(hit.transform.name);

            Target target = hit.transform.GetComponent<Target>();
            if (target != null)
            {
                target.TakeDamage(damage);
            }

            if (hit.rigidbody != null)
            {
                hit.rigidbody.AddForce(hit.normal * forceImpact);


            }
            Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));

            GameObject impactGo = Instantiate(impactEffect2, hit.point, Quaternion.LookRotation(hit.normal));
            Destroy(impactGo, 0.50f);

            GameObject impactZom = Instantiate(zombieBlood, hit.point, Quaternion.LookRotation(hit.normal));
            Destroy(impactZom, 0.50f);


        } 
  
    }   
}

 

 

komentarz 8 września 2019 przez Bezy Bywalec (2,280 p.)

Tutaj masz screen

1 odpowiedź

+1 głos
odpowiedź 9 września 2019 przez Bezy Bywalec (2,280 p.)
Rozwiązane...Wystarczyło wyłączyć opcje Quaries Hit triggers

Znajdziesz ją w : Project settings > Physics > Quearies HitTriggers

Podobne pytania

0 głosów
1 odpowiedź 199 wizyt
pytanie zadane 27 kwietnia 2019 w C# przez Pytam_PL Użytkownik (520 p.)
0 głosów
0 odpowiedzi 84 wizyt
pytanie zadane 18 października 2020 w OpenGL, Unity przez Sic Dyskutant (8,510 p.)
0 głosów
0 odpowiedzi 113 wizyt

92,568 zapytań

141,423 odpowiedzi

319,629 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...