запуск метода из другого скрипта [решено]

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

запуск метода из другого скрипта [решено]

Сообщение ru66ssb 17 июл 2018, 12:59

всем привет. суть такова.
есть скрипт1:

Синтаксис:
Используется csharp
public class DataManage : MonoBehaviour {

    public float speedUpdateMap;
    public float speedUpdateGPS;

    public GameObject panelMenu;
    public GameObject panelSetting;

    public GameObject inputSpeedUpdateMap;

    public GameObject gameManager;



    public void Awake()
    {
        if(speedUpdateGPS <= 0)
        {
            speedUpdateGPS = 10;
        }

        if (speedUpdateMap <= 0)
        {
            speedUpdateMap = 10;
        }

        dataLoad();

    }

    private void Start()
    {
        panelMenu.SetActive(true);
        panelSetting.SetActive(false);

       
    }

    private void dataLoad()
    {
        if(!PlayerPrefs.HasKey("SpeedMap"))
        {
            dataSave();
        }
        else
        {
            speedUpdateMap = PlayerPrefs.GetFloat("SpeedMap");
            //Debug.Log("saved SpeedMap - " + speedUpdateMap);
        }
    }

    private void dataSave()
    {
        PlayerPrefs.SetFloat("SpeedMap",speedUpdateMap);
        //Debug.Log("save first time SpeedMap");
        PlayerPrefs.Save();
    }

    public void btnSettingOn()
    {
        panelSetting.SetActive(true);

    }

    public void btnSettingOff()
    {
        panelSetting.SetActive(false);
       
    }

    public void btnChangeSpeedUpdateMap(string updateMap)
    {
        float tmp = float.Parse(updateMap);
        speedUpdateMap = tmp;
        dataSave();
       
    }
 


и есть скрипт2 :

Синтаксис:
Используется csharp
public class GoogleApi : MonoBehaviour
{

    public RawImage img;

    string url;

    public float lat;
    public float lon;

    LocationInfo li;

    public int zoom = 14;
    public int mapWidth = 640;
    public int mapHeight = 640;

    public enum mapType { roadmap, satellite, hybrid, terrain }
    public mapType mapSelected;
    public int scale;


    public GameObject dm;
   
   
   


    IEnumerator Map()
    {
        ///url = "https://maps.googleapis.com/maps/api/staticmap?center=" + lat + "," + lon +
        WWW www = new WWW(url);
        yield return www;
        img.texture = http://www.texture;
        img.SetNativeSize();
        Debug.Log("+map");
    }
   
    // Use this for initialization
    void Start()
    {
        img = gameObject.GetComponent<RawImage>();
       

        //InvokeRepeating("UpdateMap", 0.1f, dataMap.speedUpdateMap);
        UpdateMap();

    }
   


    void UpdateMap()
    {
        Debug.Log("+++ " + dm.GetComponent<DataManage>().speedUpdateMap);
        InvokeRepeating("UpdateMapCorutine", 0.1f, dm.GetComponent<DataManage>().speedUpdateMap);
    }

    void UpdateMapCorutine()
    {
        StartCoroutine(Map());
    }
   
 



также есть панель с настройками где меняю значение speedMapUpdate - так вот. значение меняется (вижу в инспекторе) и сохраняется - при следующем запуске загружается сохраненное значение. вопрос только - как мне после изменения значения и выхода из панели настроек перезапустить метод скрипт2 UpdateMap (например из скрипт1 btnSettingOff() ) - типа закрыл панель настроек - чтобы отсчет обновления карты пошел с нуля с указанным/измененным интервалом?
автоматически не подхватывает изменения.

ЗЫ не ругайте сильно за нубские скрипты ;) я учусь по маленьку
Последний раз редактировалось ru66ssb 18 июл 2018, 07:13, всего редактировалось 1 раз.
Аватара пользователя
ru66ssb
UNIт
 
Сообщения: 107
Зарегистрирован: 27 июн 2015, 07:01

Re: запуск метода из другого скрипта

Сообщение 1max1 17 июл 2018, 14:54

Делаешь UpdateMap пабликом, берешь компонент GoogleApi из другого скрипта и вызываешь метод.
Синтаксис:
Используется csharp
gapi = gameObject.GetComponent<GoogleApi>();
gapi.UpdateMap();

Или в инспекторе сразу указать свой компонент, для этого в скрипте 1, добавляешь строчку:
Синтаксис:
Используется csharp
public GoogleApi gapi;

И в инспекторе закидываешь тот, объект на котором висит этот скрипт.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: запуск метода из другого скрипта

Сообщение ru66ssb 18 июл 2018, 07:13

спасибо
Аватара пользователя
ru66ssb
UNIт
 
Сообщения: 107
Зарегистрирован: 27 июн 2015, 07:01


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot], Google [Bot] и гости: 19