Unity
Unityでゲームを作って、Androidアプリとしてリリースしました!超絶シンプルですが、今の自分ができることを詰め込みました。無料で広告なしなので、ぜひぜひ遊んでみてください。 play.google.com
横スクロールアクションや、シューティングゲームでよくあるあれです。 まずSpriteを点滅させる方法は、SpriteRendererコンポーネントのアルファ値を変化させてやれば、実装できる。そのときのソースコードがこれ。 public SpriteRenderer sp; // ダメージ判…
タイトルそのまんまです。ゲーム作ってたら、こんな感じでTextオブジェクトがSpriteの後ろになってしまう問題が発生。 Sprite同士なら簡単にいくのだが、TextとSpriteだとどうしていいのかわからず、結構悩んでいた。 で、解決した方法がこちら。 Textオブジ…
少し時間が空いたけど、Androidアプリを新たにリリースしました。それがこちら。 play.google.com 30秒間に画面をタップした回数を記録するゲーム。スマホアプリにはよくあるゲームだ。Unityでゲームは作っているが、これまで作ったゲームはUnityの技術書の…
これまで、Google Playへ3つのAndroidアプリをリリースしました。当時の記事がこちら。 uuc1h.hatenablog.jp けど、ちょっと間が空くと、かならずやり方を忘れてしまう。そのため、ここで自分用の完璧な手順書を作っておく。 UnityでAndroidビルドをする方法…
Unityをメインにアプリ開発をしているが、Unityで使用する言語はC#だ。 自分は仕事でJavaを使っているからC#も何となく理解できるが、ここらで一度C#を学んでおきたいと思う。 そこで手に取ったのが、この「確かな力が身につく」シリーズだ。確かな力が身に…
private void Update() { if(score > displayScore) { displayScore += 10; if(displayScore > score) { displayScore = score; } RefreshScore(); } } void RefreshScore() { textScoreNumber.GetComponent<Text>().text = displayScore.ToString(); }</text>
private void OnTriggerEnter2D(Collider2D collision) { if(collision.gameObject.tag == "Enemy") { if(transform.position.y > collision.gameObject.transform.position.y + 0.4f) { rbody.velocity = new Vector2(rbody.velocity.x, 0); rbody.AddForce…
public LayerMask blockLayer; private Rigidbody2D rbody; private float moveSpeed = 1; public enum MOVE_DIR { LEFT, RIGHT, }; private MOVE_DIR moveDirection = MOVE_DIR.LEFT; private void FixedUpdate() { bool isBlock; switch(moveDirection) { …
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerManager : MonoBehaviour { // ブロックレイヤー public LayerMask blockLayer; private Rigidbody2D rbody; // 移動速度固定値 private const float M…
Main Camera / Camera / Sizeを小さくする
void OnApplicationPause(bool pauseStatus) { if(pauseStatus) { // アプリがバックグラウンドへ移行 } else { // バックグラウンから復帰 } }
朝食:ポテトサラダ入りサンドイッチ昼食:キーマカレー夕食:レタスのサラダ、フライドチキン、味噌汁 今日は、夕食に白米を抜いてみた。過去最高体重になったので、炭水化物を徐々に抜いてきます。あと、リンゴ酢を飲み始めて、早四日目。うん、体調に全く…
DateTime型はPlayrePrefsでは、読み書きができない。そのため、バイナリに変換する必要がある。 PlayerPrefs.SetString(KEY_TIME, lastDateTime.ToBinary().ToString(); // 時間の復元方法 // 第2引数は、デフォルト値の指定 string time = PlayerPrefs.GetS…
1.Animatorウィンドウで、以下の状態を作り出しておく。 ※左のパラメータは、Parametersタブ / +をクリックし、Triggerを選択。 2.New Stateからget@ImageMokugyoの矢印をクリックし、遷移するトリガーを「isGetScore」を設定する。 ※Has Exit Timeをオフに…
1.Animationウィンドウを開く2.Add Propertyをクリックし、変化させたい項目を選択する。(ここでは例として、Rect Transform / Anchored Postionを選択)3.記録ボタンをクリックし、InspectorのRect Transform / Pos Yの値を変更4.記録ボタンをオフにする。
public enum ORB_KIND { BLUE, GREEN, PURPLE, } 連続する定数。最初の定数は0、次は1・・というように設定される。
// 煙のimageを取得 GameObject smoke = (GameObject)Instantiate(smokePrefab); // canvasGameオブジェクトの子供に設定 smoke.transform.SetParent(canvasGame.transform, false); smoke.transform.SetSiblingIndex(2);
float scale = 1.0f; transform.localScale = new Vector3(scale, scale, 1.0f);
public Sprite[] templePicture = new Sprite[3]; public void SetTemplePicture(int level) { GetComponent<Image>().sprite = templePicture[level]; }</image>
// 時間の差分をチェック // DateTime型同士の計算は、TimeSpan型になる TimeSpan timeSpan = DateTime.UtcNow - lastDateTime; // RESPAWN_TIME定数の秒数をTimeSpan型に変換 if(timeSpan >= TimeSpan.FromSeconds(RESPAWN_TIME)) { while(timeSpan >= Time…
DateTime lastDateTime = DateTime.UtcNow;
private GameObject gameManager = GameObject.Find("GameManager"); gameManager.GetComponent<GameManager>().GetKey();</gamemanager>
1.EventTriggerコンポーネントを追加する。2.Add new Event Type / PointerEnterを選択する。3.+をクリックし、タップした際に呼び出したいメソッドがあるゲームオブジェクトをセットする。4.No Functionをクリックし、対象のメソッドを選択する。
// Prefabから新しいインスタンスを作成 GameObject orb = (GameObject)Instantiate(orbPrefab); // CanvasGameオブジェクトを親オブジェクトに設定 orb.transform.SetParent(canvasGame.transform, false); // 生成したインスタンスの位置を設定 orb.transf…
Cancas / Order in Layerの数値を大きくする。 そうすると、数値が大きいものほど前面に表示される。
Image / Raycast Targetをオフにする。
1.UI / Imageをクリック。2.Source Imageのアイコンをクリックし、表示したいスプライトを選択。3.Set Native Sizeをクリックすると、もとの画像の大きさで表示される。
iOSアプリをAppStoreへ公開するまでの流れは一通り分かったので、次は色々こだわったゲームを作ろうと思う。けど、まだまだ自分ができることは少ないので、あくまで出来る範囲で。 まずは今作っているゲームの概要から。基本は「落ちゲー」で、ひたすら落下…
// 移動速度 public float speed = 5.0f; // Rigidbodyコンポーネント Rigidbody2D rb; // Use this for initialization void Start() { // Rigidbodyコンポーネント取得 rb = GetComponent<Rigidbody2D>(); //右上にボールを動かす rb.AddForce((transform.up + transfor</rigidbody2d>…