Использование неназначенной локальной переменной при попытке получить переменную из другого скрипта - PullRequest
0 голосов
/ 27 октября 2018

Я пытаюсь получить переменную Float из скрипта MainCharacterVarsScript , я бы использовал этот Float в этом текущем скрипте. Переменная называется CharacterSpeed ​​, оба сценария находятся на игровом объекте BaseCharacter . Прямо сейчас у меня есть своего рода обратный способ сделать это, пытаясь преобразовать его в новую переменную в этом скрипте. Это то, что у меня есть сейчас, просто я пытаюсь получить компонент из другого скрипта. Я получаю сообщение об ошибке в строке 15 (длинное), сообщающее, что я использую неназначенную локальную переменную.

Сокращенная версия того, что я хочу:

Чтобы получить переменную из одного скрипта в другой

1) Получить float CharacterSpeed ​​из MainCharacterVarsScript

2) Сделайте это плавающим в моем текущем скрипте

3) Оба на игровом объекте BaseCharacter

Спасибо за чтение и помощь

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

public class MainCharacterMove : MonoBehaviour {


float MoveSpeed;

// Use this for initialization
void Start () {


    GameObject BaseCharacter = GameObject.Find ("BaseCharacter");
    MainCharacterVarsScript mainCharacterVarsScript = 
mainCharacterVarsScript.GetComponent<MainCharacterVarsScript>();
    mainCharacterVarsScript.CharacterSpeed = MoveSpeed;
}

// Update is called once per frame
void Update () {

}
}

1 Ответ

0 голосов
/ 27 октября 2018
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class MainCharacterMove : MonoBehaviour
{    
    float MoveSpeed = 0f;

    // Use this for initialization
    void Start()
    {
        GameObject BaseCharacter = GameObject.Find("BaseCharacter");
        MainCharacterVarsScript mainCharacterVarsScript = mainCharacterVarsScript.GetComponent<MainCharacterVarsScript>();
        MoveSpeed = mainCharacterVarsScript.CharacterSpeed;
    }

    // Update is called once per frame
    void Update()
    {

    }
}
...