0
1

Unityでのゲーム作り日記#2 ~今までに完成したところ~

Last updated at Posted at 2024-01-08

前回の記事はこちら

今回は、この記事を書き始める前に完成していた部分について説明します。

コードエディタ

programing_-SampleScene-Windows_-Mac_-Linux-Unity-2021.3.25f1-Personal-DX11-2024-01-08-09-30-44.gif
見えなかったら拡大してみてください。

背景が黒のテキストエリアとテキストメッシュプロのラベル、背景が灰色の長方形を組み合わせて作りました。

プログラムはこんな感じです。↓

CodeScript.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;

public class CodeScript : MonoBehaviour
{
    public TextMeshProUGUI lineNumber;
    public TMP_InputField code;

    // Start is called before the first frame update
    void Start()
    {
        lineNumber.text = "1";
    }

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

    public void InputKey(string value){
        int lineNum = code.textComponent.textInfo.lineCount;
        lineNumber.text = "1";
        
        for(int i = 2; i <= lineNum; i++){
            lineNumber.text += $"\r\n{i}";
        }
    }
}

行を追加すると行番号が表示されるようになっています。

自作言語

現時点ではコードエディタにコードを記述し、GO!ボタンを押すとコンソールに実行結果が出てくるようになっています。

ガーネット言語

関数型の言語です。
例えば10番目のフィボナッチ数を求めるプログラムは次の通りです。

fib(n) = if n < 2 n fib(n-2) + fib(n-1)
print(fib(10)) # result -> 55

関数型言語なので、変数に代入はできません。(代入の代わりに束縛をします)

トパーズ言語

スタック指向型の言語です。
スタック指向言語っていうのは、値をスタックに積んでいってそのスタックに対して操作を行って計算するっていう言語です。
例えば10番目のフィボナッチ数を求めるプログラムは次の通りです。

(fib
 (nextNum tuck +)
 1 0 :nextNum 3 pick loop
)
10 fib print # result -> 55

多分この言語が一番難しくて(だって自分でもよくわからないもん)一番速いと思います。
(使ってくれる人いるのかな...)

ターコイズ言語

未完成です。
手続き型言語です。
pythonライクとかJSライクとかにしたいと思っています。

終わりに

ガーネット言語とトパーズ言語の文法はまだ書いていませんが、ゲームを公開するときにマニュアルに書こうと思います。

次回はターコイズ言語を作っていきます。
次回はの記事はこちら

0
1
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
1