ramkaの朝ごはんはピーナッツパン

超個人的備忘録です。基本自分のためなので、内容の不備、読みづらさ、つまらなさはご了承ください。

GameManagerを使ったゲームの進行

qiita.com

GameManagerというオブジェクトを作成して、そこにスクリプトをアタッチ

たとえばGameManager.csというスクリプトを作成して、そこにゲームの進行に関わる処理を記載していく。

他のスクリプトからGameManagerのスクリプトを実行しやすいように、
静的なメンバ変数を用意しておく

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

public class GameManager : MonoBehaviour
{
    public static GameManager m_instance;

    public Text m_waveClear; // レベルのテキスト
    public int m_waveLevel; // ウェーブのレベル

    // ゲーム開始時に呼び出される関数
    private void Awake()
    {
        // 他のクラスからプレイヤーを参照できるように
        // static 変数にインスタンス情報を格納する
        m_instance = this;

    }

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {

    }

    public void WaveClear()
    {
        // ウェーブクリアオブジェクトを表示
        m_waveClear.gameObject.SetActive(true);
        // 表示文字列を更新
        m_waveClear.text = "WAVE" + m_waveLevel + "CLEAR!";
        // ウェーブレベルをインクリメント
        m_waveLevel++;
    }
}

多次元配列を宣言して使えるまで

いろんな言語を味見するたび思う

インクリメントしかり、ループしかり、なんで書き方揃えないんでしょうね

それほどプログラミングが好きなわけではないのでわかりません

swiftでの多次元配列の宣言は以下のサイトを参考にしました
宣言はです

qiita.com

多次元の配列だよーってだけで、要素数は何個だよーって定義はされていないので、
これでhogehoge[1]なんて指定したら怒られる

appendで必要な分追加する

他にいい方法があるかもしれませんが、今のところわかりません

5×5の二次元配列であれば

var hoge = [[Double]]()        

〜〜〜中略〜〜〜

for cnt in 0..<5 {
    hoge.append([0])
    
    for _ in 0..<4 {
        hoge[Int(cnt)].append(0)
    }
}

ファイルの有無を確認する

ファイルの有無を確認する

ファイルの確認はileManager.default.fileExists

引数はpathなので、URLだったら「.path」メソッドでパスに変換する

let fileURL:URL = documentsURL.appendingPathComponent("backimg" + tag.description + ".png")
        
if( FileManager.default.fileExists(atPath: fileURL.path) ) {
    print("ファイルあり")
} else {
    print("ファイルなし")
}