横スクロールアクションといえば「敵キャラ」👾!
今回は 地面の上を左右に歩くだけのシンプルな敵 を作ってみましょう!
↓実装イメージ↓
①事前準備
敵オブジェクトの作成
まずは敵オブジェクトを作っていきましょう!
基本的にはプレイヤーと同じ作り方です。
- Hierarchyで「2Dオブジェクト → Sprite → Square」を作成
- 名前を「Enemy」に変更
- Add Componentでコンポーネントを追加
- Rigidbody2D(物理挙動を持たせるため)
- BoxCollider2D(床との当たり判定を行うため)
- 敵の見た目を変更する
- Sprite Rendererタブの「Sprite」に敵の画像をドラッグする(ここではAssetStoreの素材を使用します)

【使用した敵の画像はこちら】
https://assetstore.unity.com/packages/2d/characters/simple-2d-platformer-assets-pack-188518#description
👉これで敵オブジェクトの作成が出来ました
②完成コード(Enemy.cs)
Enemy.csを新規作成します。
まずは左に移動するだけの処理を作ってみましょう(コピペOK!)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy : MonoBehaviour
{
[SerializeField, Header("移動速度")]
private float _moveSpeed;
private Rigidbody2D _rigid;
private Vector2 _moveDirection;
void Start()
{
_rigid = GetComponent<Rigidbody2D>();
_moveDirection = Vector2.left; // 初期は左に歩かせる
}
void Update()
{
_Move(); // 移動処理
}
// 移動処理
private void _Move()
{
_rigid.velocity = new Vector2(_moveDirection.x * _moveSpeed, _rigid.velocity.y);
}
}
③各処理の説明(初心者向け)
Start
- Rigidbody2Dのコンポーネント(Unity上で設定した)を取得して移動に使えるようにする
- 最初は「左へ進む」ように設定
Update
- 毎フレーム
_Move()
を呼び出して移動させます。
_Move
- 敵の横方向の速度を設定します。(移動速度はUnity上で設定したものが実行される)
- 「横向きの速度」を与えて歩かせる
④Enemy.csをEnemyオブジェクトに割り当てる
- Add Componentで以下のコンポーネントを追加
- Enemy.cs
- Unity上の設定で「移動速度」を設定します。
- Enemy.cs
⑤ 動作確認
Enemy
を地面に配置- プレイして敵が左右に歩くか確認
- 地面の端まで来たら方向転換するかチェック
⑥ まとめ
- Rigidbody2D と Collider2D で物理的に動かす
これで「シンプルな敵キャラ」ができました!
次は「プレイヤーに触れたらダメージ」や「落下中は動かない」などといった機能を足してより本格的な敵にしていこうと思います!
コメント