Lab 7 in Singapore

Unityでのゲーム開発、プログラミング教育、VR/AR/MR、AI・機械学習に関して。たまにシンガポールのネタも。

Unity Basic

【Unity】Unity Cloud Build が Unity Teams の一部に。。。

Unity Teams
いきなり、イメージを張り付けましたが、私にとってはかなりショッキングだったので。。。
と言うのは、以前、Windows で iOS 用ゲームアプリをリリースした際、その方法を紹介しました。
( URL:http://blog.lab7.biz/archives/5434763.html
(基本的に、iOS 用にアプリをビルドするには Mac が必要となります。)

そこではの基本方針は、必要なコストは極力抑えると言うものにしていました。
しかし、そこで紹介したやり方から 少し状況が変わったらしいのです。続きを読む

【Unity】Windows で iOS アプリをリリース(詳細)Part 3

Macを持っていないWindowsユーザの私が最近 iOS版アプリ「マーライオン アドベンチャ」をリリースしました。
その手順に関して、前回のつづきとなります。
(URL:Windows で iOS アプリをリリース(概要)
(URL:Windows で iOS アプリをリリース(詳細) Part1
(URL:Windows で iOS アプリをリリース(詳細) Part2

今回の第3章、第4章がアプリの Update 毎に行うところになるので、最も頻繁に行います。

【3.アプリを Unity Cloud を使用してビルド】

ビルドが必要な際は毎回行う作業です。

【3.1.Bitbucket にソースを Source Tree から Commit】
Bitbucket のリモートリポジトリにソースを Source Tree から Commit。

方法は以下を参考。
https://tonari-it.com/git-bitbucket-first-push/
http://naichilab.blogspot.sg/2014/01/git-5sourcetreegit.html

続きを読む

【Unity】Windows で iOS アプリをリリース(詳細)Part 2

前回第1章からのつづきです。
( URL:Windows で iOS アプリをリリース(概要)
( URL:Windows で iOS アプリをリリース(詳細) Part1

【2.アプリごとに行う事前準備】

各アプリに対して最初に一度行う処理です。
そのアプリに対する再ビルド時には必要ありません。

【2.1.Unity上でアプリの iOSへの設定】
Android版を作っていたわけですので、Unity上での設定をiOS版に変更します。
Windowsユーザであるので iOS版でのビルドを試すことはできませんが、最低限Android版でビルドしてエラーは全くない状態にしておきましょう。
(Unity Cloudのビルドはとても時間がかかるので、Android上で できる限り完璧なものにしておきましょう。)
続きを読む

【Unity】Windows で iOS アプリをリリース(詳細)Part 1

Macを持っていないWindowsユーザの私が、最近 iOS版アプリ「マーライオン アドベンチャ」をリリースしました。
前回、その方法の流れをざっくりお伝えいたしました。
Windows で iOS アプリをリリース(概要)

今回は、その それぞれの項目の詳細をお伝えいたします。
ちなみに、前回も書きましたが、前提条件は以下です。
 ・Android 版アプリは完成。
 ・Windows 端末のみ所有。
 ・絶対必要な「iOS Developer Program」以外は無料。

【1.アプリ共通 事前準備】
続きを読む

【Unity】Windows で iOS アプリをリリース(概要)

少なくとも現在、私は Macを持っていない Windows ユーザです。
(もしかしたらそのうち購入するかもしれませんが。)

しかし、最近私は iOS版アプリ「マーライオン アドベンチャ」をリリースしました。
( マーライオン アドベンチャ (iOS) )

よく iOS版をリリースするには何かしら Macが必要だとよく言われています。
私もそう信じていたのですが、いろいろ情報をかき集めてみると できるような気がして、試してみました。
結果は既に上記したとおり、Macなしで iOS版のリリースができました。
(けっこう大変でした。。。)
今回はその方法をお伝えしようかと思います。
続きを読む

【Unity】Physics.Spherecast を試してみた

前に Physics.Raycastを試して、その結果をこのブログで書きました。
( カメラからの Raycast を試してみた:http://blog.lab7.biz/archives/2379340.html
( Physics.Raycast を試してみた:http://blog.lab7.biz/archives/2256403.html

その後も、けっこう Physicsクラスの Cast系の実装をしますが、すぐ実装法を忘れてしまって自分のブログを参考にすることがよくあります。
と言うことで、他の Cast系メソッドに関しても記述しておこうかと思います。
かつ、他の人の役にもたてれば何よりです。
(Raycastよりは使用頻度は少ないと思いますが。)
続きを読む

【Unity】Texture への描画を試してみた Part 2

前回軽くTextureへ直接描画をする方法を紹介しました。
http://lab7.blog.jp/archives/2924409.html

今作っているゲームはこの方法を基盤にするものです。
せっかくなので、初心者でも使いやすく、もう少しこの描画ロジックを説明しようかと思います。


まず、Texture への描画ロジックは以下です。
より分かりやすいように、日本語でのコメントいっぱい入れてみました。
移動する GameObjectが、Fieldの Texture上での自分のUV座標を引数に Paint_Lineメソッドを呼び出す形です。

public class Test_Draw : MonoBehaviour {
 // テクスチャは正方形、移動オブジェクトは立方体の前提
 private const int C_TEXTURE_SIZE = 500;//テクスチャの一辺のPixel数
 private const int C_OBJECT_SIZE = 25; //立方体一辺のPixel数
 private Color[] buffer; //色情報操作用のバッファ配列
 private Color OBJECT_COLOR = Color.yellow; //塗る色の指定
 // 塗るテクスチャ座標はオブジェクトの中心座標なので一辺の半分を事前計算
 private int object_Halfsize = (int)( C_OBJECT_SIZE / 2);

 //説明①
 public void Paint_Line (Vector2 point) {
  // UV座標をテクスチャのPixelでの座標に変換
  // この変数をループでの変数に使うので int に型変換
  int point_X = (int) (point.x * C_TEXTURE_SIZE);
  int point_Y = (int) (point.y * C_TEXTURE_SIZE);

  // 現在のTextureの色情報をバッファ配列にコピー
  Texture2D mainTexture
= (Texture2D) GetComponent<Renderer> ().material.mainTexture;
  Color[] pixels = mainTexture.GetPixels(); //説明②
  buffer = new Color[pixels.Length];
  pixels.CopyTo (buffer, 0); //説明③

  //オブジェクトのある X,Y座標(UnityのX,Z座標)部分のPixel座標をループ。
  for(int x = point_X - object_Halfsize;
x < point_X + object_Halfsize; x++){
   for(int y = point_Y - object_Halfsize;
y < point_Y + object_Halfsize; y++){
    // バッファ上でオブジェクトのある Pexel座標の色情報を変換
    buffer.SetValue (OBJECT_COLOR, x + C_TEXTURE_SIZE * y);
   }
  }

  // 色変換をした色情報バッファをテクスチャに反映
  Texture2D drawTexture = new Texture2D (mainTexture.width,
mainTexture.height, TextureFormat.RGBA32, false);
  drawTexture.filterMode = FilterMode.Point;
  drawTexture.SetPixels (buffer); //説明④
  drawTexture.Apply(); //説明⑤
  GetComponent<Renderer> ().material.mainTexture = drawTexture;
 }
}

説明①:
Paint_Lineメソッドの引数 Vector2 pointはテクスチャのUV座標を渡す。
UV座標とは原点 (0,0)がテクスチャの左下で、右上が (1,1)となります。
よって、0~1の範囲と言うことになります。

説明②:
Color[] Texture2D.GetPixels:テクスチャからピクセルの色情報を取得します。

説明③:
CopyTo:配列のコピー。配列のコピーでは=を使うと参照コピーになってしまう。
http://lab7.blog.jp/archives/2651297.html

説明④:
Texture2D.SetPixels(Color[] colors):色情報バッファをテクスチャに反映。
テクスチャにピクセルカラー配列 colors(上記プログラム内ではbuffer)を指定します。

説明⑤:
Texture2D.Apply:SetPixels関数による変更を実際に適用する。

Game App from Lab7
GooglePlay_Top_2 (Android) GooglePlay_Top_2 (Android, iOS) GooglePlay_Top_2 (Windows) GooglePlay_Top_2 (Android, iOS)
Lab7 blog in English
Sponsored Link
Twitter プロフィール
《シンガポールでARゲーム個人開発中。 主にARに関して情報発信してます。》 VR/AR/MR、Unity、機械学習/AIにも興味あり。それらのシンガポール、東南アジアの情報もあわせて発信中。
Blog Visitors [訪問者数]
  • 累計:

PV [アクセス数]
  • 累計:

Sponsored Link