初めに
今回はUnityで自機弾を作る方法を紹介します。Translateを使って角度を変えずに作るので注意してください
自機弾を作る
それでは早速作っていきましょう。
三平方の定理を使います。三平方の定理とはa²+b² = c²というもので、直角三角形の二辺がわかるともう一つの辺もわかるというものです。これを使って弾と追尾する物の距離を求めて、xとyをどれだけ移動させればいいか求めます
aの辺は隣辺,bの辺は対辺,cの辺は斜辺といいます
弾のコードはこんな感じです
弾のコード
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEditor.Build;
using UnityEngine;
public class BarrageLittleBlueController : MonoBehaviour
{
GameObject player; //追尾される側のオブジェクトを定義
float abjacentLength; //隣辺の長さ
float oppositeLength; //対辺の長さ
float obliqueLength; //斜辺の長さ
void Start()
{
this.player = GameObject.Find("追尾するオブジェクトの名前");
}
void Update()
{
abjacentLength = player.transform.position.x - transform.position.x; //追尾する物のX座標から弾のX座標を引いて隣辺の長さに代入します。
oppositeLength = player.transform.position.y - transform.position.y; //追尾する物のY座標から弾のY座標を引いて対辺の長さに代入します。
obliqueLength = Mathf.Sqrt(abjacentLength * abjacentLength + oppositeLength * oppositeLength);
//隣辺の長さと対辺の長さの合計の平方根を求めて斜辺の長さに代入します。Mathf.Sqrt()は平方根を求める関数です。
transform.Translate(abjacentLength * 1.0f / obliqueLength, oppositeLength * 1.0f / obliqueLength, 0);
//斜辺の長さ分の進みたい距離を隣辺と対辺にそれぞれかけて、xとyをどれだけ移動させればいいか求めます。
}
}
1.0fのところには弾のスピードを入れてください。
これで追尾する弾を作ることができます
終わりに
追尾してくる弾はシューティングゲームでよく使われがちです。
これを使ってあなたのゲームをもっと楽しくしてみてください。