Shameless19
@Shameless19

Где ошибка в движении объекта?

На Canvas висит скрипт:
public class Test2 : Test1
{
 private GameObject inst;
    protected  GameObject GO;
    private static Vector2 destination;
    public static Vector2 Destination
    {
        get { return destination; }
        set 
        {          
            destination = value;           
        }
    }
void Start()
    {   
     GO = Resources.Load("W11", typeof (GameObject)) as GameObject;
     destination = RandomVector2(destination);
     Init();
    }
    public void Init()
    {
       inst = Instantiate(GO, destination, Quaternion.identity) as GameObject;
       inst.transform.SetParent(Canvas.transform, false);
       inst.transform.position = destination;
       StartCoroutine(TCoroutine()); //выставляет новое значение destination
    }
}


За движение объекта отвечает другой скрипт (висит на самом объекте):
public class Update1 : MonoBehaviour
{
    void Update()
    { 
       transform.position = Vector2.Lerp(transform.position, Test2.Destination, Test1.speed* Time.deltaTime);
    }
}


При таком раскладе все работает верно, но мне нужно переместить функцию Update в первый скрипт, и проблема в том, что когда я пытаюсь вставить туда:
void Update()
    { 
       inst.transform.position = Vector2.Lerp(transform.position, destination, Test1.speed* Time.deltaTime);
    }

Объект не реагирует нужным образом - вместо это трясется в одной точке.
Как нужно переписать, чтобы все работало исправно?
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы