オブジェクト間、往復スクリプト

using UnityEngine;
using System.Collections;

public class QueryLocomotionCamera : MonoBehaviour
{
    // 往復ポイント1
    [SerializeField]
    GameObject original;
    // 往復ポイント2
    [SerializeField]
    Transform target;
    // 往復スピード
    [SerializeField]
    float speed = 1f;
    // リープモード選択
    [SerializeField]
    bool leapMode;
    // Use this for initialization
    IEnumerator Start()
    {
        var orgPos = original ? original.transform.position : transform.position;
        var targetPos = target.position;
        var endPos = targetPos;

        transform.position = orgPos;

        while (true)
        {
            Vector3 moveVector = endPos - transform.position;
            while (moveVector.magnitude > .2f)
            {
                if (leapMode)
                    transform.position = Vector3.Lerp(transform.position, endPos, Time.deltaTime * speed);
                else
                    transform.Translate(moveVector.normalized * Time.deltaTime * speed);

                moveVector = endPos - transform.position;
                yield return null;
            }
            endPos = endPos == orgPos ? targetPos : orgPos;
        }
    }
}