【ハルシオンブログ】DoTweenを使ってランダムぶれて飛んでいく弾を作ってみよう!
はーい 坂内でーす!
みなさんお元気お過ごしですか?
DoTweenでこんな感じで動かす方法の紹介。

まずは、ボタンを押すと弾が出るようにします。
[BulletManager.cs]
そして、弾のオブジェクトに次のスクリプトを付けます。
[Bullet.vs]
これで、ボタンを押すと弾が真っすぐ上に飛ぶようになります。
ここまでが基本。
次に、弾が横にぶれるようにします。
ぶれ幅は次のコードの BLUE_WIDTHになります。
[Bullet.cs]
DoTweenのDOLocalPathを使ってパスにするのですが、Y座標を-1~+1のランダム、X座標を-1~+1のランダムにしているのでこういう動きになります。
Sceneの方を見るとなんとなくわかるかな…

というわけで、パスの通り道をランダムで作るとこんな感じの動きの物が作れます。
では、あでゅ~ノシ
みなさんお元気お過ごしですか?
DoTweenでこんな感じで動かす方法の紹介。

まずは、ボタンを押すと弾が出るようにします。
[BulletManager.cs]
using UnityEngine;
public class BulletManager : MonoBehaviour {
public GameObject bulletPref;
public void OnClickShoot() {
Instantiate(bulletPref);
}
}
そして、弾のオブジェクトに次のスクリプトを付けます。
[Bullet.vs]
using UnityEngine;
using DG.Tweening;
public class Bullet : MonoBehaviour {
void Start() {
transform.DOMoveY(5.2f,1f);
}
private void Update() {
if(transform.localPosition.y >= 5.2f) {
Destroy(gameObject);
}
}
}
これで、ボタンを押すと弾が真っすぐ上に飛ぶようになります。
ここまでが基本。
次に、弾が横にぶれるようにします。
ぶれ幅は次のコードの BLUE_WIDTHになります。
[Bullet.cs]
using UnityEngine;
using DG.Tweening;
public class Bullet : MonoBehaviour {
float[] BLUR_WIDTH = {-1f, 1f};
void Start() {
Vector3[] path = {
new Vector3(transform.localPosition.x + Random.Range(BLUR_WIDTH[0],BLUR_WIDTH[1]),
Random.Range(BLUR_WIDTH[0],BLUR_WIDTH[1],0f),
new Vector3(0,5.2f,0f)
};
transform.DOLocalPath(path, 1f, PathType.CatmullRom).SetEase(Ease.Linear);
}
private void Update() {
if(transform.localPosition.y >= 5.2f) {
Destroy(gameObject);
}
}
}
DoTweenのDOLocalPathを使ってパスにするのですが、Y座標を-1~+1のランダム、X座標を-1~+1のランダムにしているのでこういう動きになります。
Sceneの方を見るとなんとなくわかるかな…

というわけで、パスの通り道をランダムで作るとこんな感じの動きの物が作れます。
では、あでゅ~ノシ
Category: 開発日記(Unity)
« 【ハルシオンブログ】Xcode8を入れなおしたら起動しなくなったって話。 | 【ハルシオンブログ】iOSのビルドで久々にかなり嵌りました…orz »
コメント
| h o m e |