Unity переключает оружие на мобильный - PullRequest
0 голосов
/ 08 мая 2019

Итак, у меня есть следующий код для переключения оружия внутри метки-заполнителя, и я хочу расширить его, чтобы переключать оружие и с кнопки, чтобы я мог переключать их и на своем мобильном телефоне.

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class WeaponSwitcher : MonoBehaviour {
    public int selectedWeapon = 0;

    // Use this for initialization
    void Start () {
        SelectWeapon();
    }

    // Update is called once per frame
    void Update () {
        int previousSelectedWeapon = selectedWeapon;

        if (Input.GetAxis ("Mouse ScrollWheel") > 0f) 
        {
            if (selectedWeapon >= transform.childCount - 1)
                selectedWeapon = 0;
            else
                selectedWeapon++;
        }
        if (Input.GetAxis ("Mouse ScrollWheel") < 0f) 
        {
            if (selectedWeapon <= 0)
                selectedWeapon = transform.childCount - 1;
            else
                selectedWeapon--;
        }

        if (previousSelectedWeapon != selectedWeapon) 
        {
            SelectWeapon ();
        }

    }

    void SelectWeapon()
    {
        int i = 0;
        foreach (Transform weapon in transform) 
        {
            if (i == selectedWeapon)
                weapon.gameObject.SetActive (true);
            else
                weapon.gameObject.SetActive (false);
            i++;
        }
    }
}

Что мне делать?Я новичок, и все, что я пробовал, не сработало: /

Я пробовал с помощью независимого скрипта только для кнопки, чтобы найти, какое оружие активно, и деактивировать другое (всего два) и т. Д., Ноэто не сработало.

public class ChangeWeapon : MonoBehaviour
{ 
    public GameObject gun; 
    public GameObject shotgun; 

    void switchWeapons () 
    { 
        gun = GameObject.Find("Gun"); 
        shotgun = GameObject.Find("Shotgun"); 

        if (gun.gameObject.activeSelf) 
        { 
            shotgun.gameObject.SetActive (true); 
            gun.gameObject.SetActive (false); 
        }
        else
        {
            shotgun.gameObject.SetActive (false); 
            gun.gameObject.SetActive (true); 
        }
    }
}

1 Ответ

0 голосов
/ 08 мая 2019

Я нашел действительно простое решение, которое работает.

Я поместил две кнопки поверх другой, отключил вторую и нажал на действия, выполняющие следующие действия:

  1. Включить вторую кнопку
  2. Отключить первую кнопку
  3. Отключить первый пистолет
  4. Включить второй пистолет

И наоборот.

Изображение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...