• 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 ...

VPS Starter Arubacloud
0 głosów
151 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ź 190 wizyt
pytanie zadane 27 kwietnia 2019 w C# przez Pytam_PL Użytkownik (520 p.)
0 głosów
0 odpowiedzi 81 wizyt
pytanie zadane 18 października 2020 w OpenGL, Unity przez Sic Dyskutant (8,510 p.)
0 głosów
0 odpowiedzi 110 wizyt

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...