シューティングゲームでお馴染みの自機狙いの弾を作っていますが、上手く動いてくれません。
近づいたり、離れたりして、結局最後は段々離れていってしまいます。
public float speed =0.1f;
public int Count = 1;
public int MaxCount = 5;
private float EnemyLaserX;
private float EnemyLaserY;
private float rotation;
private GameObject Player;
private GameObject BulletLaser;
private float PlayerPositionX;
private float PlayerPositionY;
private float x;
private float y;
void Start()
{
BulletLaser=GameObject.Find("弾のオブジェクト名");
EnemyLaserX=BulletLaser.transform.position.x;
EnemyLaserY=BUlletLaser.transform.position.y;
Player=GameObject.Find("自機のオブジェクト名");
PlayerPositionX=Player.transform.position.x;
PlayerPositionY=Player.transform.position.y;
}
void Update()
{
if(Count==MaxCount)
{
rotation = Mathf.Atan2( PlayerPositionY - EnemyLaserY,PlayerPositionX-EnemyLaserX) * 180 / Mathf.PI;
Count=0;
}
Count++;
x += speed * Mathf.Cos(rotation * 180 / Mathf.PI);
y += speed * Mathf.Sin(rotation * 180 / Mathf.PI);
transform.Translate(-x/100,-y/100,0.0f);
}
コードはこんな感じです。
Translate内のy,xにマイナスをかけているのは、Cos Sinは正のままだと、プレイヤーから遠ざかっていってしまうのと、/100は、早すぎて動きがよく見れなかったので、わざと遅くしています。
よろしくお願いいたします
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/16 04:06