﻿using UnityEngine;
using System.Collections;

public class Simple2DFollow : MonoBehaviour {

    // Das Objekt, dem gefolgt werden soll (z.B. SnakeHead)
    public Transform objectToFollow = null;

    // Die Geschwindigkeit des Folgens in X-Richtung
    public float followSpeedX = 1F;

    // Die Geschwindigkeit des Folgens in Y-Richtung
    public float followSpeedY = 1F;

    /* 
     * LateUpdate gleicht X- und Y-Position des Objektes, an das diese
     * Komponente gehängt wurde, dem Zielobjekt (objectToFollow) an.
     * LateUpdate wird von Unity in jedem Frame aufgerufen, nachdem 
     * alle Update-Methoden aufgerufen worden sind.
     */
    public void LateUpdate() {
        // hole die Position des Objektes, dem wir folgen
        Vector3 objectPos = objectToFollow.position;

        // hole die eigene Position
        Vector3 myPos = this.transform.position;

        // gleiche x und y der eigenen Position an Position des Folge-Objektes an
        myPos.x = Mathf.Lerp(myPos.x, objectPos.x, Time.deltaTime * followSpeedX);
        myPos.y = Mathf.Lerp(myPos.y, objectPos.y, Time.deltaTime * followSpeedY);

        // setze die eigene Position auf die geänderte eigene Position
        this.transform.position = myPos;
    }
}
