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

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

一度は行ってみたい国・・・シンガポールかもしれない

お題「人生で一度でいいからいってみたい国ってどこですか?」

アメリカはあぶない
ヨーロッパは綺麗だけどあぶない
中東はふつうに危ない
韓国はなんとなく危ない
カナダは寒くて危ない
インドはやばくて危ない
中国はいろいろ危ない
フランスはスリとか危ない
オーストラリアは紫外線が危ない
台湾は好きだけど中国からの侵攻が危ない
ブラジルは言わずもがな危ない
ペルーは崖が多そうで危ない
メキシコは麻薬とかが危ない


お金持ちになったらシンガポールに行って車の自販機で車を買ってみよう

0225の議事録

毎日、同じことばっかり繰り返して
ろくにノートパソコンも開かないのでブログを書いている。
特にこれといった議題もないので、ただ文章を書いている。
中身はないです。
明日は水曜日なので週の真ん中だ。

毎日同じ  ではないけど、
毎年同じ  ような感じだ。

いつまで繰り返すのか?という自問にも飽きた。今日はとりあえず寝よう。
というのも良くないのかもしれない。
寝ずに頑張れ!ということかもしれない。
よくわからないけど眠いのは確か。

タッチした場所にオブジェクトを生成

タッチしたポジションを、そのまま渡せばいいじゃない
と思っていたら少しつまずきました。

生成はできているけど、表示されない

以下が最終的に動いたソースですが、
タッチ時のポジションをそのままTouchOnに渡すだけではだめで、

position.z = 10f; // Z方向を設定

を行わないと思った通り動きませんでした。

   void Update()
    {
        // 押されているかを判定
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);
            
            position = touch.position; // 位置情報を取得
            position.z = 10f; // Z方向を設定
            if (touch.phase == TouchPhase.Began)
            {
                // タッチ開始
                TouchOn(Camera.main.ScreenToWorldPoint(position));
            }
            else if (touch.phase == TouchPhase.Moved)
            {
                // タッチ移動
            }
            else if (touch.phase == TouchPhase.Ended)
            {
                // タッチ終了
            }
        }
    }

    public void TouchOn(Vector3 pos)
    {
        GameObject pbl = Instantiate(m_pblObj);
        pbl.transform.localPosition = pos;
    }

スクリプトをVisual stdioで起動する

前はできたのにできなくなったので調べてみました

SCRIPTを起動すると、今までは違うエディターが起動するようになってしまいました

docs.microsoft.com

ただ、自分の環境では「preference」が「edit」メニューではなく、「Unity」メニューにありました

UNITYで作ったアプリをAppStoreConnectにアップロードするときにつまづいたこと

普段であればXCODE内でコーディング、ビルド、アップロードが完了するのですが、
Unityでアプリを作った時は少し気をつけないといけないことがありました

【問題1】
アップロードしたのにAppstore Connectに反映されない。

xcodeでビルド、アップロードしたのに、一夜置いても反映されていませんでした。

原因はご丁寧にAppstore connectさんからメールが来ていました。

ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

要はUIWebViewを使わないでねということらしいです

Unityのバージョンが古いといけない模様で、新しいUnityにてビルドしたものであれば大丈夫でした。

qiita.com

【問題2】
archive後、validateにてエラーが発生していました。

Invalid Bundle. You've included the "arm64" value for the UIRequireDeviceCapabilities key in your Xcode project, ~

おたくの作ったアプリ64ビットCPU対応してませんよ?って怒られています。
iOSiPhone5s以降64ビットになっているので、ちゃんと対応するように作ってねー
ってことなのかな

これもUnity側の設定を見直して解決できました。

light11.hatenadiary.com

この後アップロードは完了しましたが、まだ承認依頼はできておらず。

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++;
    }
}