序文
Unityチュートリアル「2Dシューティング」7日目。
ここまでいかなくても、ユニティちゃんをMMD的に簡単に動かせないのかなーと思って少し調べてみたのだけど、あんまりやっている人はいないようだ。
あんまりいないということはきっと難しいのだろう。
ユニティちゃん界隈ってあんまり盛り上がってないよね。
GitHub
進捗
- ゲーム制作編
- Waveを5個にする、スコアの実装
(学習時間:2時間)
コード実装部分
\2d-shooting-game\assets\scripts\score.cs
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Score : MonoBehaviour { // スコアを表示するUI public GameObject scoreUI; // ハイスコアを表示するUI public GameObject highScoreUI; // スコア private int score = 0; // ハイスコア private int highScore = 0; // PlayerPrefsで保存するためのキー private string highScoreKey = "highScore"; void Start() { PlayerPrefs.DeleteAll(); Initialize(); } void Update() { // スコアがハイスコアより大きければ if (highScore < score) { highScore = score; } // スコア・ハイスコアを表示する scoreUI.GetComponent<Text>().text = score.ToString(); highScoreUI.GetComponent<Text>().text = "HighScore:" + highScore.ToString(); } // ゲーム開始前の状態に戻す private void Initialize() { // スコアを0に戻す score = 0; // ハイスコアを取得する。保存されてなければ0を取得する highScore = PlayerPrefs.GetInt(highScoreKey, 0); } // ポイントの追加 public void AddPoint(int point) { score = score + point; } // ハイスコアの保存 public void Save() { // ハイスコアを保存する PlayerPrefs.SetInt(highScoreKey, highScore); PlayerPrefs.Save(); // ゲーム開始前の状態に戻す Initialize(); } }
- その他実装部分
github.com
実行結果
www.youtube.com 普段アクションゲームやらないおっさんがガチプレイしてみた
感想
スコアとハイスコアを表示する機能を実装して完成。
チュートリアルではスコアの表示にGUI Textコンポーネントを使用していたのだけど、GUI Textコンポーネントは現在非推奨でかつ実際使ってもうまくいかなかった(これは自分のせいかも)のでCanvasのUI機能を使って実装した。
最低限、GetComponent
あとは個人的な注意力の問題かもしれないけど、全体的に説明が簡素で、見出しとスクリーンショットの間の目立たない一行に重要な内容が書かれていて、見落とすと動かない!みたいな罠があるので入門者がやりきるのは意外と難しいかもね。
Unity入門者向けの書籍はいっぱいあるので、それを1冊こなしてから挑戦するぐらいがちょうどいい難易度かなぁという気がしました。
次は何をやろうか考え中。
カロリーメイトください。
BGM
たいにーたいにー / BUGY CRAXONE