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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
236 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ź 291 wizyt
pytanie zadane 27 kwietnia 2019 w C# przez Pytam_PL Użytkownik (520 p.)
0 głosów
0 odpowiedzi 128 wizyt
pytanie zadane 18 października 2020 w OpenGL, Unity przez Sic Dyskutant (8,510 p.)
0 głosów
0 odpowiedzi 186 wizyt

93,440 zapytań

142,431 odpowiedzi

322,679 komentarzy

62,802 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

...