>>612
突っ込みたいことは2点
・flagは常にtrueになる事
・Time.deltaTimeで割ってるのは何故?速度に時間をかけた値が移動距離だと思うが

OnGUIとPatternScrollを↓のように書き換えたらどうだろうか

function OnGUI() {
 if (GUI.Button(Rect(110, 60, 100, 50), "scroll" )){
  temptime = Time.time;
  flag = true;
 }
}

function PatternScroll (line:int, speed:int) {
 pattern[line].transform.position.y = pattern[line].transform.position.y - 5.2 * 10 * speed * Time.deltaTime;
 if(pattern[line].transform.position.y < (-5.2 * 7)) {
  pattern[line].transform.position.y = 0;
 }
}