@Decobraz

Как получать переменную из другого скрипта Unity в update?

Есть Unity скрипт PlatformSpeed
В нем обновляется переменная speed
Он принадлежит объекту SpeedCounter
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlatformSpeed : MonoBehaviour
{
    public float speed;
    public float deltaSpeed;
    
    void FixedUpdate()
    {
        speed += deltaSpeed;
        //Debug.Log(speed);
    }

    public float Speed() {
        return speed;
    }
}


И есть скрипт MovePlatform
Он принадлежит объекту Enemy
В нем должна обновляться переменная speed и передаваться в метод transform.Translate()
Но этого не происходит
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEditor.UIElements;
using UnityEngine;

public class MovePlatform : MonoBehaviour
{
    private float speed;
    [SerializeField] private GameObject obj;
    

    void Update()
    {
        speed = GetSpeed();
        Debug.Log(speed);
        transform.Translate(new Vector3(1,0,0) * speed * Time.deltaTime);
    }

    private float GetSpeed() { 
        return obj.GetComponent<PlatformSpeed>().Speed();
    }
}
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
@hermer29
ООП это не методология отрубающая руки, это способ строить сложные программы проще. Нужно объединить MovePlatform и PlatformSpeed в класс Platform, тут же все проблемы уйдут, пусть и работают с общим полем speed
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы