Untiy 3D 学习 -从入门到入土 (4)武器切换

武器切换的脚本是要用到了UI层的制作

Untiy 3D 学习 -从入门到入土 (4)武器切换

  利用UI Camera渲染呈现,而UI层中存在的东西有:一张画布(UI panel)即scene,然后下面再有一张子画布,画布下有背包栏,也是UI panel;

其中,背包栏使用了Grid Layout Group组件,便于分格

下边是一段武器的

  1. //宣告 : 使用介面模版、武器順序、目前及下一個武器(取得名稱用)、3把武器、二個前段介面文字
  2. var MySkin : GUISkin;
  3. var WeaponSort : int = 0;
  4. private var CurrentWeapon : GameObject;
  5. private var NextWeapon : GameObject;
  6. var Weapon0 : GameObject;
  7. var Weapon1 : GameObject;
  8. var Weapon2 : GameObject;
  9. var FrontText1 = "切換武器為 : ";
  10. var FrontText2 = "目前武器名稱/順序 : ";
  11. //介面功能 : 如果按下切換武器按鈕時,武器順序加1 --------------------------------------
  12. //介面文字 : 目前武器名稱/順序 + / + 目前武器名稱
  13. function OnGUI()
  14. {
  15.    GUI.skin = MySkin;
  16.    if(GUI.Button(Rect(20, 200, 150, 30), FrontText1 + NextWeapon.name))
  17.    {
  18.       WeaponSort ++;
  19.    }
  20.    GUI.Label(Rect(200, 5, 300, 30), FrontText2 + CurrentWeapon.name + "/" + WeaponSort);
  21. }
  22. //功能 : 每個 frame 都執行一次 --------------------------------------------------------
  23. //如果武器順序為0,則目前武器為武器0;下一把武器為武器1;開啟武器0;關閉武器1及2,以此類推
  24. //如果武器順序大於等於3,則歸0 (形成循環)
  25. function Update()
  26. {
  27.    if(WeaponSort == 0)
  28.    {
  29.       CurrentWeapon = Weapon0;
  30.       NextWeapon = Weapon1;
  31.       Weapon0.active = true;
  32.       Weapon1.active = false;
  33.       Weapon2.active = false;
  34.    }
  35.    if(WeaponSort == 1)
  36.    {
  37.       CurrentWeapon = Weapon1;
  38.       NextWeapon = Weapon2;
  39.       Weapon0.active = false;
  40.       Weapon1.active = true;
  41.       Weapon2.active = false;
  42.    }
  43.    if(WeaponSort == 2)
  44.    {
  45.       CurrentWeapon = Weapon2;
  46.       NextWeapon = Weapon0;
  47.       Weapon0.active = false;
  48.       Weapon1.active = false;
  49.       Weapon2.active = true;
  50.    }
  51.    if(WeaponSort >= 3)
  52.    {
  53.       WeaponSort = 0;
  54.    }
  55. }