「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を使って直線でゆっくり移動を== |
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);
}
