unity項目小總結

歡迎來到Unity學習社區

 

一、怪物在一定距離內走向主角並擊打主角

 

這裏的思路爲:


首先需要確定主角的位置和怪物的位置,分別爲其定義相應的變量;


這裏主角位置定義爲hero.positio,怪物位置爲transform.position


然後通過Vector3調用Distance方法實現怪物的行爲。


關鍵代碼如下:


  if (Vector3.Distance(transform.position, hero.position) < 3f)


// 這裏調用了Vector3中的Distance方法用於返回主角怪物之間的距離。


       anim.animation.Play("Ratkin_1H_sword_swing_high_straight_down");    


//當兩者距離小於3米時調用其自身打擊動畫       


            }


   else if (Vector3.Distance(transform.position, hero.position) < 5f)


          {


               anim.animation.Play("Ratkin_1H_combat_run");/調用怪物跑的狀態


 

               agent.SetDestination(hero.position);//使得怪物移動至主角位置


           }


            else if (Vector3.Distance(transform.position, hero.position) > 5f) {


                anim.animation.Play("Ratkin_IDLE");//調用怪物禁止狀態


                agent.SetDestination(transform .position);//使得怪物處於當前位置


 

            }


腳本掛在在怪物遊戲對象上。

 

二、通過GUI實現血條的創建


 

思路爲:通過兩張重疊的圖片來顯示生命值;通過顯示前景圖片的寬度顯示血條的增加和減少;

 

HP = (int)Hero.lifetime;//獲取主角生命值


           if (HP <=100)//


           {


               int blood_width = red.width * HP / 100;   


     //設置前景圖片的顯示寬度,將圖片寬度與生命值進行比例轉換     

   

               GUI.DrawTexture(new Rect(20, 20, 100, 20), black);


               GUI.DrawTexture(new Rect(20, 20, blood_width, 20), red);


//通過調用繪製紋理來實現前景圖片與背景圖片的顯示


           }else if(HP >100){


               int blood_width = red.width ;


               GUI.DrawTexture(new Rect(20, 20, blood_width, 20), red);


//當生命值獲取到最大時顯示圖片不在增加寬度 只顯示圖片寬度

           }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章