Unityを始めよう
そういえばUnity触ろう触ろうと思って全然触ってなかったので、今日はユニティ記念日…じゃなくてユニティ触っていこうと思います。ゲーム的サムシングをつくらねば、僕は社会に殺されるとか思ったわけです。まあ、すでに僕は社会的には死んだも同然なんですけどね。
さあ、いつもの自虐はこのくらいにして四の五の言わずUnityしていきましょうかね。
月曜日判定ゲームを作る
それではいつもの月曜判定ゲーム作っていきます。もはや、それはゲームなのかすらよくわかりませんが、ゲームエンジンで作ってるのでまぎれもなくゲームですね(?)。最近は"何とかシミュレータ"とかいう、ゲームなのか何なのかすらわからない作品もゲームコミュニティなんかでリリースされていたりしますしね。ゲームとは哲学なのです(?)。
さて、戯言は言わないと言った矢先に脱線してますね。真面目にやっていきましょう。そういえばUnityもそうだけど、C#触るのも久しぶりすぎて使い方思い出せなくなってました。
そんなときは~……、公式ドキュメント~。
Unity - スクリプトリファレンス:
それとマイクロソフトのやつ~。
マイクロソフトのやつ、C#について良い感じにまとまっている情報がないんですけど……。みんなどうやってマイクロソフト系言語を覚えてるんだろうか……。まあ、どうでもいいね。
Unityあまりに久しぶりに触りすぎて、ぬるり(Null Reference Exception)を出して小一時間つまづいてしまったよ。
Null Reference Exception
どのオブジェクトにも参照していない参照変数にアクセスしようとすると、 NullReferenceException が起こります。
こいつですね。今まで、シェルとかいう暗黒の画面ばかり触っていたせいでInspectorへの紐づけとかが必要な事すっかり忘れてたました。やっぱりGUIもさわれるようにしていかないとだめっすねぇ。
さて制作の苦労話なんかしても面白くないですし、そろそろ制作物を……。
月曜判定を作った
●仕様
月曜日になるとメンテ中の画面が表示される。
月曜のとき
それ以外のとき
ソース
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Monday_Del : MonoBehaviour { public Text monText; public int nowDay = (int)DateTime.Now.DayOfWeek; void Start () { } void Update () { if (nowDay == 1) { monText.text = "月曜メンテ中..."; }else { monText.text = "ぷっしゅ すた~と"; } } }
いろんな言語で似たようなの作ってますが、日付の制御はいまだに適当に作っていてえぐいですね。規模が大きくなってきたらこの構造に嫌気がさして修正するはずなので大目に見てください。それよりも、いやー作りましたね。ゲームではない何かが出来ましたね。
次回はローディング画面っぽいGUIにカスタマイズをしていきます。(ゲームをつくれよ)
それでは、次回をお楽しみにー。