facebook twitter hatena line email

「Unity/3d/ゆっくり移動」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==Leapを使ってゆっくり移動を== presentには0〜1を入れる。 <pre> float present = 0f; // 0~1 [SerializeField] GameObject startObj; [SerializeField] GameOb...」)
 
(Admin がページ「Unity/3d/Leap」を「Unity/3d/ゆっくり移動」に、リダイレクトを残さずに移動しました)
 
(同じ利用者による、間の4版が非表示)
行1: 行1:
==Leapを使ってゆっくり移動を==
+
==Leapを使って直線でゆっくり移動を==
 
presentには0〜1を入れる。
 
presentには0〜1を入れる。
 
<pre>
 
<pre>
行12: 行12:
 
}
 
}
 
</pre>
 
</pre>
 +
==Sleapを使って球状にゆっくり移動を==
 +
presentには0〜1を入れる。
 +
 +
Time.timeは0から秒経過してく。
 +
<pre>
 +
[SerializeField] GameObject startObj;
 +
[SerializeField] GameObject endObj;
 +
[SerializeField] GameObject nowObj;
 +
float speed = 0.3f;
 +
void Update()
 +
{
 +
    float distance = Vector3.Distance(startObj.transform.localPosition, endObj.transform.localPosition);
 +
    float present = (Time.time * speed) / distance;
 +
    nowObj.transform.localPosition = Vector3.Slerp(startObj.transform.localPosition, endObj.transform.localPosition, present);
 +
}</pre>

2022年12月10日 (土) 18:35時点における最新版

Leapを使って直線でゆっくり移動を

presentには0〜1を入れる。

float present = 0f; // 0~1
[SerializeField] GameObject startObj;
[SerializeField] GameObject endObj;
[SerializeField] GameObject nowObj;
void Update()
{
    present += 0.01f;
    nowObj.transform.localPosition = Vector3.Lerp(startObj.transform.localPosition, endObj.transform.localPosition, present);
}

Sleapを使って球状にゆっくり移動を

presentには0〜1を入れる。

Time.timeは0から秒経過してく。

[SerializeField] GameObject startObj;
[SerializeField] GameObject endObj;
[SerializeField] GameObject nowObj;
float speed = 0.3f;
void Update()
{
    float distance = Vector3.Distance(startObj.transform.localPosition, endObj.transform.localPosition);
    float present = (Time.time * speed) / distance;
    nowObj.transform.localPosition = Vector3.Slerp(startObj.transform.localPosition, endObj.transform.localPosition, present);
}