忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【Unity】自機を表示して移動させる【簡単な2DSTGを作ってみるNo.1】

【Unity】自機弾を発射する(プレハブ化する)【簡単な2DSTGを作ってみるNo.2】

【Unity】敵のアニメーション表示と移動(プレハブ化する)【簡単な2DSTGを作ってみるNo.3】

【Unity】自機狙い弾を発射させる【簡単な2DSTGを作ってみるNo.4】

【Unity】背景の表示とオブジェクトの表示順位【簡単な2DSTGを作ってみるNo.5】

【Unity】当たり判定の追加【簡単な2DSTGを作ってみるNo.6】

【Unity】爆破アニメーションの追加【簡単な2DSTGを作ってみるNo.7】

【Unity】タイトル画面の追加(シーン移行)とテキスト表示【簡単な2DSTGを作ってみるNo.8】

【Unity】ボスの追加【簡単な2DSTGを作ってみるNo.9】

敵をアニメーション表示して移動させます。
まずは下記の画像をAsset内の画像フォルダに保存します。
(サムネイル表示になっていますのでクリックしてから保存して下さい)


こんな感じ。


追加した画像をUnityで選択してInspectorのSprite ModeをMultipleに変更してからSprite Editorをクリックします。


Sprite Editorが開いたらSliceを押してTypeをGrid By Cell Sizeに変更しX、Yをそれぞれ96に変更してSliceボタンを押すと96x96ドットで画像が分割されます。便利!


Projectタブの画像が分割されていれば成功です。


分割した画像を全て選択してSceneタブにドラッグ・アンド・ドロップするとアニメファイルを保存するタブが出てきますので任意の名前(今回はenemy0.anim)で保存します。


作成されたアニメファイルの再生ボタンみたいなアイコンの方をクリックするとアニメをループするかどうかの選択が出来ます。
Loop Timeのチェックを外せばループしなくなります。今回はループさせたいのでそのままで。


再生ボタンじゃない方をダブルクリックするとアニメの再生スピードを変更出来ます。
オレンジの部分をクリックしてSpeedを変更すればOK。今回は2にしておきました。


一度、真ん中の再生ボタンを押してみてちゃんと敵がクルクル回っていればOKです。
敵移動のスクリプトを作成しますので右クリック→Create→C# Scriptでスクリプトを作成。
名前はenemy0_moveとして下記のコードを入力。

今回もtransform.Translateで移動させています。自機弾の時とは反対方向に動くので-0.03fとなっています。
if (transform.position.y < -6)で敵座標が-6以下になったらDestroy(gameObject)で敵削除。

作成したenemy0_moveスクリプトをenemy0にアタッチします。


アタッチしたらHierarchyタブのenemy0名前をenemy0_prefabに変更してProjectタブのPrefabフォルダにドラッグ・アンド・ドロップでコピーして、Hierarchyタブのenemy0_prefabは削除します。


次にゲーム時間を制御するためのタイムテーブルを導入します。
まず、Hierarchyタブ右クリック→Create Emptyで空のゲームオブジェクトを作成します。
名前はtime_tableとしておきます。
Projectタブで右クリック→Create→C# Scriptでスクリプトを作成。名前をtime_tableとして下記のコードを入力します。

public GameObject enemy0_Prefab;で追加したい敵などをInspectorに入力するタブを表示させます。
 if(game_time%10==0)でgame_timeを10で割った時の余りが0の時に敵を生成。
Instantiate(enemy0_Prefab, new Vector3(-6f + 12f * Random.value, 6, 0), Quaternion.identity)でx軸はランダムでy軸は6の位置に敵を回転させずに表示します。
game_timeの概念があれば例えばgame_time=100とかにすれば100の時に好きな場所に表示なども可能ですね。

作成したtime_tableスクリプトをHierarchyタブのtime_tableにアタッチします。


アタッチしたtime_tableを選択するとInspectorにenemy0_prefabタブが出来ているのでそこにProjectタブのenemy0_prefabをドラッグ・アンド・ドロップ。


この状態で真中の再生ボタンを押せば敵がワラワラ生成されます。


time_tableのif(game_time%10==0)をif(game_time%1==0)とかにするとこんな感じにもなります。


こんな感じで敵を追加していけば、自分の好きな時に好きな場所に色んな敵を表示出来るようになります。
PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
無題
//敵表示の前に;が無いですよ
NONAME 2019/11/21(Thu)15:07:38 編集
無題
コメントありがとうございます。修正しておきました
kt. 2019/11/24(Sun)01:43:41 編集
Twitter
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]