Unity/3d/ゆっくり移動
提供: 初心者エンジニアの簡易メモ
2022年12月10日 (土) 18:35時点におけるAdmin (トーク | 投稿記録)による版 (Admin がページ「Unity/3d/Leap」を「Unity/3d/ゆっくり移動」に、リダイレクトを残さずに移動しました)
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); }