UNITY Как перенести значение из одного скрипта в другой скрипт?
Уже гуглил как это делать, но ничего не выходит. Также и смотрел этот вопрос на Стэке, но обьяснили очень криво. Вообще не понимаю, что не так. Я хочу взять и перенести значение переменной speed
Первый скрипт объекта под названием Model, куда я хочу положить значение переменной speed:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ModelAnimation : MonoBehaviour
{
Rigidbody Model;
void Start()
{
Model = GetComponent<Rigidbody>();
GameObject Player = GameObject.Find("Player");
Rigidbody modelSpeed = Model.GetComponent<Rigidbody>();
float speed = Player.speed;
}
}
Второй скрипт из объекта под названием Player, откуда я хочу взять значение переменной speed
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public float speed;
public float rotate;
Rigidbody Player;
void Start()
{
Player = GetComponent<Rigidbody>();
}
void Update()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical") + 1.5f;
Player.transform.Translate(Vector3.forward * moveVertical * speed * Time.deltaTime);
Player.transform.Rotate(Vector3.up * moveHorizontal * rotate * Time.deltaTime);
}
}
Мне пока самое главное хотя бы вывести это значение, чтобы убедиться, что всё работает.
Ответы (1 шт):
Объясню попроще.
Если например вы говорите маме или жене
Иду в гости к другу.
для начала надо её объяснить кто такой друг. Для этого вы в начале её говорите:
Мой лучший друг - Сергей, живёт в ......
Примерно тоже самое происходит тут.
Скрипту ModelAnimation вы говорите так:
Скрипт
PlayerMoveмой друг, живёт в ...... Бери оттуда переменнуюspeed, он не обидится.
:-)
А теперь на деле.
Скрипт выглядит таким -
public class ModelAnimation: MonoBehaviour
{
public PlayerMove playerMoveScript;
...
void Start()
{
float speedInAnimation = playerMoveScript.speed;
}
}
Только не забудьте в конце добавить скрипт через Inspector.

П.Н.
Я прикрепил скрипт к объекту под названием SceneManager. Вместо этого у вас на картинке должен быть Player.