Unity No.8~敵を作成しよう(自動移動,反転)~

ゲームに敵がいないなんて面白くない!!

この前の試作ゲームにはいませんでした😢😢😢😢😢😢

 

そこで今回は敵を作っていきたいと思います!!!

完成はこちら

f:id:ka1357amnbpdr:20190301004914g:plain

ちゃんとループしてくれています

あとは,作った時をプレハブにしているので適当に配置してっと

では,どうしたのか!

まずは,スクリプトがこちらです.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class enemy : MonoBehaviour
{
public float position_x = 0.0f;
public float position_y = 0.0f;
 
// Update is called once per frame
void Update()
{
if(gameObject.layer == 9){
move_lengh();
// Debug.Log("lengh");
}else if(gameObject.layer == 10){
move_side();
// Debug.Log("side");
}
}

void move_lengh(){
float pos_x = this.gameObject.transform.position.x;
float pos_y = this.gameObject.transform.position.y;
float sin = Mathf.Sin(Time.time) + position_y;
this.transform.position = new Vector3(pos_x,sin,0);
}

void move_side(){
float pos_y = this.gameObject.transform.position.y;
float pos_x = this.gameObject.transform.position.x;
float sin = Mathf.Sin(Time.time)*-1 + position_x;
Vector2 temp = transform.localScale;
if(sin - position_x > 0.9){
temp.x = 2;
 
}else if(sin - position_x < -0.9){
temp.x = -2;
}
transform.localScale = temp;
this.transform.position = new Vector3(sin,pos_y,0);
}
}

縦の動きと,横の動きのどちらも入っています.

その場所でループさせたいときは三角関数を使っていきます〜〜〜

(というか,これ以外で簡単にループさせる方法がわかりません・・・)

 

 

publicにしている変数はそれぞれの敵に合わせて初期位置を手動で変更しないとできなかったのでここは頑張ってください!!

f:id:ka1357amnbpdr:20190301005307p:plain

こんな感じに色々とつけていきます

tagのgameoverは敵に当たったらゲームオーバーということ設定になっています.

また,layerは縦向きか横向きかわからないのでそれを判断するために作りました

スクリプトの中でレイヤー番号を取得して判別しています

 

では,次回は敵を配置して障害物を追加していきます〜〜