[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
426
(2): 2020/05/12(火)16:18 ID:Ys8/n9tg(1) AAS
下記のスクリプトのようなオブジェクトが滑らかに移動する動作をUIのボタンを押したら移動するようにしたいのですがどうすればいいでしょうか?

public class Move : MonoBehaviour
{

//スタートとゴールの設定
public Transform StartPosition;
public Transform GoalPosition;

// スピードの設定
public float speed = 1.0f;

//2点間の距離を入れる
private float distance_two;

void Start()
{
//二点間の距離を代入
distance_two = Vector3.Distance(StartPosition.position, GoalPosition.position);
}

void Update()
{
// 現在の位置
float present_Location = (Time.time * speed) / distance_two;
// オブジェクトの移動
transform.position = Vector3.Lerp(StartPosition.position, GoalPosition.position, present_Location);
}
}
435: 2020/05/12(火)21:00 ID:9ZCShqmp(1) AAS
>>426
まず、滑らかに移動するルーチンをお作りなさい。
つぎに、
ボタンが押されたらある変数が0から1になるルーチンを作りなさい。こちらで押したら離しても1のままとなるように。
436: 2020/05/12(火)21:52 ID:fJoHzdFR(1) AAS
>>426
public class Move : MonoBehaviour
{
//省略

private bool flag;
private float time;

//省略

void Update()
{
if(flag)
{
if(time > distance_two / speed)
{
time = distance_two / speed;
flag = false;
}
float present_Location = time * speed / distance_two;
transform.position = Vector3.Lerp(StartPosition.position, GoalPosition.position, present_Location);
time += Time.deltaTime;
}
}

//buttonで呼ぶ
public void MoveStart()
{
flag = true;
}
}
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.035s