学習記録＃1+自己紹介

# 自己紹介
2019/10/29現在美大3年生。Unityでプログラミングに触れ、楽しさに気付きました。本格的に勉強しだしたのは10月初旬頃から。作りたいものの実現のために学ぶこと・試行錯誤することが好きです。
現時点の目標は自力でWEBサービスを作れるようになること。今考えているのは予算計画と発売日の管理ができるオタク向けの家計簿的サービス。

#やること→学習記録
その日にやったこと＆考えたことなどを記録していきます。
過程や作ったものを公開する場所があったほうがいいなと思い、始めました。

#始めるまでの学習記録

- paiza：Ruby入門１，２
- paiza：HTML/CSS入門１
- progate：RubyⅠ
- progate：HTML/CSS初級、中級
- progate：Command Line基礎編

など

#今日やったこと

- 手慣らしタイピング：MEZZO"「恋のかけら」
- Qiitaの使い方確認
- 2DのUnity使用のミニゲーム「まほうのクッキング(仮)」のコード作成


#####課題点
- 結局別オブジェクトのスクリプト間でpublicな変数を変更して返す方法は分からなかった。
- Startの処理が何故か2回行われ、2回目で1回目のとき取得したobjectがnullになる原因が不明。



##・手慣らしタイピング
速度向上・打ちミス減少のために準備運動として歌詞を写経しています。最終目標は歌に合わせてミスなしで打ち切ること！
作業を始めるハードルが下がり、かつ好きな曲でテンションがあがるので良し。

##・Qiitaの使い方確認
投稿の仕方と書き方を確認。タグ配分は打ちつつ調整中。思っていたより簡単に書けるようになっていてびっくり。
GoogleAnalyticsのアカウント取得と設定もしました。


##・「まほうのクッキング(仮)」のコード作成
授業課題で制作している2DのUnity使用のミニゲーム「まほうのクッキング(仮)」
＜ゲーム概要＞
子ども向け。腰を痛めたおじいちゃんの代わりに、遊びに来るお客さんのためにケーキを作ろう！というストーリー。ヒントからお客さんは誰か・使うべき食材は何か考え、調理パートで正しい食材を選ぶことでクリアする。

画像は制作前の自分用ざっくりメモ
![IMG_3458.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521032/ad1ba9c6-47af-c4e6-cf60-3dff00f9e6e2.jpeg)


今日やったのは結果判定用のコード。ゲームとしてそこまで複雑ではないためGameManegerを作らない方針でやったけど、素直に作ってスコア管理のコードとかを参考にした方が早かったかもしれない……。
ケーキ土台とトッピングを数種用意し、選んだ食材によって表示するものを変化させる。

初めに考えたのは判定ボタンに判定用の変数を準備し、食材のボタンを押すと変数を取得・変化させたうえで判定ボタン側に返す仕様。返す処理が詰まったので、変化させるメソッドは判定側に書き、食材ボタン側でメソッドを呼び出す仕様に。
stringで判定ボタンを指定して取得しようとしたら、Startの処理が何故か2回行われ、2回目で1回目のとき取得したobjectがnullになる現象が発生したため一旦コメントアウトしスクリプト上で直接指定しています。

<details><summary>判定ボタン側コード</summary><div>


```C#:Judge
{
    public int SorF = 0;
    public int CorP = 0;

    public string cakeA;
    public string cakeB;
    public string cakeF;

    public string whipA;
    public string whipB;

    GameObject cA;
    GameObject cB;
    GameObject cF;
    GameObject wA;
    GameObject wB;


    void Start()
    { // パーツを取得して非表示
        cA = GameObject.Find(cakeA);
        cA.SetActive(false);

        cB = GameObject.Find(cakeB);
        cB.SetActive(false);

        cF = GameObject.Find(cakeF);
        cF.SetActive(false);

        wA = GameObject.Find(whipA);
        wA.SetActive(false);

        wB = GameObject.Find(whipB);
        wB.SetActive(false);
    }
 
    //ボタン側で呼び出される、判定値を変更
    public void Pc1()
    {//+1
        SorF += 1;
        Debug.Log(SorF);
    }

    public void Mc1()
    {
        SorF -= 1;
        Debug.Log(SorF);
    }

    public void Pw1()
    {//+1
        CorP += 1;
        Debug.Log(CorP);
    }

    public void Mw1()
    {//-1
        CorP -= 1;
        Debug.Log(CorP);
    }

    void OnMouseDown()
    {
        if(SorF == 6)
        {
            cA.SetActive(true);
        }
        else if(SorF == 7)
        {
            cB.SetActive(true);
        }
        else
        {
            cF.SetActive(true);
        }

        if(SorF < 6)
        {
            //何もしない
        }
        else if(CorP == 1)
        {
            wA.SetActive(true);
        }
        else
        {
            wB.SetActive(true);
        }
    } 
}
```
</div></details>

<details><summary>食材ボタン側コード</summary><div>

```C#:OnMouseDown_plus_w
{
    //足す・引く値をインスペクター上で指定
    public int plus = 1;
    public int minus = 0;

    //Judgeがアタッチされたオブジェクトを指定
    GameObject judger;
    //public string Judger = "next";

    
    // Start is called before the first frame update
    void Start()
    {
       judger = GameObject.Find("Judger");
        Debug.Log(judger);
    }

    // Update is called once per frame
    void OnMouseDown()
    {
        //ループ用の変数を定義
        int p = plus;
        int m = minus;

        //+,-値が0になるまでJudgeで足す、引く
        while (p != 0)
        {
            judger.GetComponent<Judge>().Pw1();
            --p;
            
        }

        while (m != 0)
        {
            judger.GetComponent<Judge>().Mw1();
            ++m;
            Debug.Log(m);
        }

        this.gameObject.SetActive(false);
    }
}
```
</div></details>

食材ボタンコードwhip版は呼び出すメソッドを変更。