teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答についたコメントを見てコードを追記した

2021/08/31 10:20

投稿

bboydaisuke
bboydaisuke

スコア5339

answer CHANGED
@@ -1,3 +1,46 @@
1
1
  [AutoMove](http://bboydaisuke.wp.xdomain.jp/2021/04/26/playground-reference-guide-1/#Auto_Move%EF%BC%88%E4%B8%80%E6%96%B9%E5%90%91%E3%81%AB%E5%8B%95%E3%81%8F%EF%BC%89) の機能は「力を加え**続ける**」ですから修正などしなくても Direction に指定するベクトルを大きくすれば加速すると思います。
2
2
 
3
- あとは [Playground の使い方](http://bboydaisuke.wp.xdomain.jp/2021/04/25/playground/#1_%E3%83%97%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%EF%BC%88%E8%87%AA%E6%A9%9F%EF%BC%89%E3%82%92%E4%BD%9C%E3%82%8B)でやっているように Rigidbody2D の Mass や Linear Drag を調整したら加速の具合を調節できます。
3
+ あとは [Playground の使い方](http://bboydaisuke.wp.xdomain.jp/2021/04/25/playground/#1_%E3%83%97%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%EF%BC%88%E8%87%AA%E6%A9%9F%EF%BC%89%E3%82%92%E4%BD%9C%E3%82%8B)でやっているように Rigidbody2D の Mass や Linear Drag を調整したら加速の具合を調節できます。
4
+
5
+ **追記**
6
+
7
+ 解答についたコメントへの返信としてコードを追記します。
8
+
9
+ ```csharp
10
+ using UnityEngine;
11
+
12
+ public class Generator : MonoBehaviour
13
+ {
14
+ [Tooltip("生成するプレハブ")]
15
+ [SerializeField] AutoMove m_autoMoveObject = default;
16
+ [Tooltip("生成する間隔(秒)")]
17
+ [SerializeField] float m_generateInterval = 1.0f;
18
+ [Tooltip("生成されるたびにこの倍率で速度が上がる")]
19
+ [SerializeField] float m_speedIncreaseRatio = 1.0f;
20
+ float m_speedRadio = 1;
21
+ float m_timer = 0;
22
+
23
+ private void Start()
24
+ {
25
+ Generate();
26
+ }
27
+
28
+ private void Update()
29
+ {
30
+ m_timer += Time.deltaTime;
31
+
32
+ if (m_timer > m_generateInterval)
33
+ {
34
+ m_timer = 0;
35
+ Generate();
36
+ }
37
+ }
38
+
39
+ public void Generate()
40
+ {
41
+ var o = Instantiate(m_autoMoveObject, this.transform.position, m_autoMoveObject.transform.rotation);
42
+ o.direction *= m_speedRadio;
43
+ m_speedRadio *= m_speedIncreaseRatio;
44
+ }
45
+ }
46
+ ```