Unityで大体コッホ曲線（後編）

[【完走目指す】初心者が25日で強くなる Advent Calendar 2022](https://qiita.com/advent-calendar/2022/aruhitoganbaru)
23日目です。見た目はコッホ曲線だけど、厳密にはコッホ曲線じゃない気がしたので”ほぼ”コッホ曲線です。
# 前回
![スクリーンショット_20221223_020238.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/ab173f28-f7ce-719d-f160-84e0bf5b8eff.png)
１つの線分の長さが、元の線分の長さの1/9のコッホ曲線を作りました。が、これ以上小さくできなくなってました。
# 最初に
忘れられていましたが、一番最初の線分が先に表示されるようにします。
```
public GameObject Senbun1;
public bool StartChk;
```
これを追加します。初めの直線です。
次にStartの部分に
```
Kohho2.SetActive(false);
```
これで、一回動作した後の三角形もどき一個が付いた線分は隠されました。
そして、Updateに
```
 if (StartChk == true)
        {
            Kohho3[0] = Instantiate(Kohho2, kh[0].transform.position, kh[0].transform.rotation);

            Kohho3[1] = Instantiate(Kohho2, kh[1].transform.position, kh[1].transform.rotation);
            Kohho3[2] = Instantiate(Kohho2, kh[2].transform.position, kh[2].transform.rotation);
            Kohho3[3] = Instantiate(Kohho2, kh[3].transform.position, kh[3].transform.rotation);
            Kohho3[0].transform.localScale = new Vector3(Kohho2.transform.localScale.x * 0.333f, Kohho2.transform.localScale.y * 0.333f, 0);
            Kohho3[1].transform.localScale = new Vector3(Kohho2.transform.localScale.x * 0.333f, Kohho2.transform.localScale.y * 0.333f, 0);
            Kohho3[2].transform.localScale = new Vector3(Kohho2.transform.localScale.x * 0.333f, Kohho2.transform.localScale.y * 0.333f, 0);
            Kohho3[3].transform.localScale = new Vector3(Kohho2.transform.localScale.x * 0.333f, Kohho2.transform.localScale.y * 0.333f, 0);
            Destroy(kohho.gameObject);

        }
        else
        {
            Kohho2.SetActive(true);
            Destroy(Senbun1);
            StartChk = true;        }
    }
```
if文が追加されました。
最初は
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/823cac98-69b8-643a-3878-e29e425107ff.png)
これ
ボタンを押すと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/fd4f733c-9414-9c19-a144-26c996f365d8.png)
こうなる
そして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/9a6df359-7aae-8d9e-e06f-8bcdecff47df.png)
こうなった。
# ボタンを押すたびに細かくなる
ボタンをn回押すたびにに4のn乗大きくなるようです
# その後
いろいろやってたら土曜日になってしまったので、とりあえずここまでできたものを載せます。

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

public class BtnPush : MonoBehaviour
{
    public int V;
    public int n;
    public GameObject[] kh ;
    public GameObject[] Kohho2;
        
        public GameObject[] Kohho3;
    public GameObject kohho;
    public bool Ugoki;
    
    public bool StartChk;
    public GameObject Senbun1;
    public int DA;
    public int AU;
    public int i;
    public int JA;
    public int AMZ;
    public int RU;
    public int DN;

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

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

    }
    public void Onclick()
    {
        //kh.Length = Mathf.Pow(4, n + 1);
   
  //  Kohho3[V] = kohho;
        V = 0;
        // Debug.Log(Mathf.Pow(4, n ));

       
        int ObjCount = Kohho3[0].transform.childCount;
        if (ObjCount == 0)
        {

            Kohho3[V] = Instantiate(kohho, kh[V].transform.position, kh[V].transform.rotation);
            Kohho3[V].transform.localScale = new Vector3(Mathf.Pow(0.333f, n), Mathf.Pow(0.333f, n), 0);
            Destroy(Senbun1);
            Kohho2[V] = Kohho3[V];

        }
        else
        {
          
                


             
              
                for (; AU < Mathf.Pow(4,n-1); AU++)
            {if (Kohho2[DN].transform.childCount == 0)
                { }
                else
                {

                
                for (; JA < 4; JA++)
                {
                    Debug.Log(i);
                    //Debug.Log(AMZ);

                    kh[JA] = Kohho2[DN].transform.GetChild(JA).gameObject;//khに線分移動
                                                                          //  Debug.Log(i);
                }
                JA = 0;
               
                //  Debug.Log(AU);
                Kohho3[0] = Instantiate(kohho, kh[0].transform.position, kh[0].transform.rotation);
                    Kohho3[0].transform.localScale = new Vector3(Mathf.Pow(0.33f, n), Mathf.Pow(0.33f, n), 0);
                    Kohho3[1] = Instantiate(kohho, kh[1].transform.position, kh[1].transform.rotation);
                    Kohho3[1].transform.localScale = new Vector3(Mathf.Pow(0.33f, n), Mathf.Pow(0.33f, n), 0);
                    Kohho3[2] = Instantiate(kohho, kh[2].transform.position, kh[2].transform.rotation);
                    Kohho3[2].transform.localScale = new Vector3(Mathf.Pow(0.33f, n), Mathf.Pow(0.33f, n), 0);
                    Kohho3[3] = Instantiate(kohho, kh[3].transform.position, kh[3].transform.rotation);
                    Kohho3[3].transform.localScale = new Vector3(Mathf.Pow(0.33f, n), Mathf.Pow(0.33f, n), 0);
                    Kohho2[DA] = Kohho3[0];
                    Kohho2[DA + 1] = Kohho3[1];
                    Kohho2[DA+2] = Kohho3[2];
                    Kohho2[DA + 3] = Kohho3[3];

                Destroy(kh[DN].transform.root.gameObject);
                    Debug.Log(i);
              
                DN = DN + 1;
                AMZ = AMZ + 1;

                    if (AMZ == 4)

                    {
                        AMZ = 0;
                    }
                    V = V + 1;


               }
                
               
            }
              
              
            if (V == 4)
               
            {
                    V = 0;
             
            }
               
                DA = DA + 4;
            
               
                }
            JA = 0;
         //   }

        DN = 0;

        AU = 0;

        i = 0;
        n = n + 1;
    }
}
```
最終的に、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2961125/78c1e61d-8c9d-4166-e7ac-57cb99cb5dc0.png)
この大きさまでしか作れませんでした。
３日かかってしまったので、ここで止めておきたいと思います

# まとめ
作り方を間違えなければ、Unityでもコッホ曲線を作れます。自分は何かしらミスってうまくできませんでした

いつかやり直します。

23日目　終わり