0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unityアクションゲームでスキル切り替えを作る

Posted at

はじめに

現在、私はUnityにて2Dアクションゲームを作成しています。
・物理型と魔法型を切り替えて戦うこと
・同じキーでそれぞれ別のスキルを使えるようにしたい
ということで、今回スキル切り替えの仕組みを考えてみました。

概要

今回は特定のキーを押すたびにスキルのゲームオブジェクトをプレハブ化したを生成してどうにかしよう、と試してみました。
スキルごとに当たり判定用のコライダーとスクリプトを用意しているので、これが一番簡単そうかな…?と思い、この手段を選んでいます。
他にもやり方があれば教えていただきたいです。

スキルのプレハブを生成するスクリプト

配列と剰余の組み合わせで生成するプレハブを決め、Instantiateで生成を行います。

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

public class SkillChange : MonoBehaviour
{
    public GameObject[] _skill = new GameObject[4]; //スキルプレハブをしまう配列
    private int _currentPrefabIndex1 = 1;
    private int _currentPrefabIndex2 = 0;

    void Start()
    {
        Instantiate(_skill[0]); //初期のスキル
        Instantiate(_skill[1]); //初期のスキル
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Q)){
            _currentPrefabIndex1 = (_currentPrefabIndex1 + 2) % _skill.Length;
            _currentPrefabIndex2 = (_currentPrefabIndex2 + 2) % _skill.Length;
            Instantiate(_skill[_currentPrefabIndex1]);
            Instantiate(_skill[_currentPrefabIndex2]);
        }
    }
}

スキルのオブジェクトにアタッチするスクリプト

このままだとプレハブが消えることなく残り続けてしまうので、消去はスキル側から行います。

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

public class Skill1 : MonoBehaviour
{
    void Start()
    {
        
    }

    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Q)){
            Destroy(this.gameObject);
        } //これを書き足してください
    }
}

(本当はここにコライダーやダメージ計算などなど色々な処理を書いていますが、変更するかもしれないのでとりあえず必要なところだけピックアップしてきました)

最後に

また他の機能が出来次第、記事に起こしていこうと思いますので、ぜひそちらもよろしくお願いします。
最後まで読んでいただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?