GÜNCEL Unity 2D düşman Yapımı(Worm enemy)

 Her platform oyununda gördüğümüz basit bir düşman sistemi yapacağız.

Elimizde düşman sprites'larından olması lazım yani düşman karakterinden BURAYA bir bağlantı adres

 koyuyorum. Oradan istediğiniz karakterleri seçebilirsiniz BU da benim seçtiğim düşman karakter.


Tüm kodlar aşağıda..



[SerializeField]
    
    [SerializeField]
    public float hız;
    public float sabitHız = 3;
    public float serhat=7.0f;
    public float dusmanYakınlıgı;
    float gecikme;
    public float gelcekZaman;
    


    Transform ılkKonum;
    Transform sımdıkıKonum;
    public Transform playerTransform; 
    public Transform fireTransform;
    
    
    Vector2 gelecekKonum;
    
    public bool dusman;
    public bool isAttack;
    public bool oyuncuOnunde;
    public bool saga, sola;


    
    public Animator anim;
    public GameObject fireBall;
  
    
   
    
        
    
   

    

    
    void Start()
    {
        hız = sabitHız;
        ılkKonum = gameObject.transform;
        gelecekKonum = new Vector2(ılkKonum.position.x+serhat,ılkKonum.position.y);

       

        gecikme = 2;
       

    }

    
    void Update()
    {
        move();
        isPlayer();


      

    }
   
    public void move() { 
     sımdıkıKonum = gameObject.transform;

        
        if (gelecekKonum.x - sımdıkıKonum.position.x<=0)
        {

            transform.eulerAngles = new Vector3(0, -180, 0);

            saga = false;
            sola = true;

        }
        else if (gelecekKonum.x-sımdıkıKonum.position.x>=serhat)
        {
            sola = false;
            saga = true;
            transform.eulerAngles = new Vector3(0,0,0);
        }
        transform.Translate(Vector2.right*hız*Time.deltaTime);
       
    
    
    }
    private void OnTriggerStay2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "Player")
        {

            oyuncuOnunde = true;
        }


    }
    private void OnTriggerExit2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "Player")
        {

            oyuncuOnunde = false;
        }

    }
   
    public void isPlayer() {
     
      dusmanYakınlıgı= Vector2.Distance(transform.position, playerTransform.position);
        if (dusmanYakınlıgı <= 6&&oyuncuOnunde==true)
        {
            isAttack = true;
            hız = 0;
            anim.SetBool("attack",isAttack);
            anim.SetBool("walk",false);
            InvokeRepeating("fire",1.6f,1.6f);


           
        }
        else if(dusmanYakınlıgı>6&&oyuncuOnunde==false)
        {
            hız = sabitHız;
            isAttack = false;
            anim.SetBool("attack", isAttack);
            anim.SetBool("walk", true);
            CancelInvoke();
           
        }
       

        
    
    }
    public void  fire() {


        if (Time.time>gelcekZaman)
        {Instantiate(fireBall,fireTransform.position,transform.rotation);
        gelcekZaman = Time.time + gecikme;

        }
        
            
           
        }
       
    
    }
    
    

Yorumlar

Popüler Yayınlar