Tag Archives: Unity

Unityで6面スカイボックスの継ぎ目が見える問題への対応方法

Filed under Unity
Tagged as ,

Unityであまり使ってなかった「6面のスカイボックス (Skybox/6 sided)」を使っているのですが、その継ぎ目が見えてしまう問題が出ていました。
調べたら簡単に対応できたので、対応方法をメモしておきます。

テクスチャの設定を直すだけ

スカイボックスに使っているテクスチャのWrap modeをClampにする。
これだけで解決しました!

unity skybox texture wrap mode clamp

下記URLが参考になりました。
・Custom Skybox Seams – Unity Answers

Unityビルド後の処理について

0
Filed under Unity
Tagged as , , , ,

UnityでiPhoneビルドした後、その処理で同時にファイルの処理をしてほしいことがあります。
Unity PostprocessBuild
例えば、xcodeprojファイルの中をいじるとか、ですね。
その方法を調べてみたら、まず見つかったのは、PostProcessBuildAttribute という方法。

PostProcessBuildAttributeで後処理

上記リンク先をみてみると、C#とJavaScriptの処理が書かれているので、これを適当なスクリプトファイルとして、 /Assets/Editor/に配置すればよいということらしいです。
例えば、JavaScriptで処理を書く場合、下記のような内容のスクリプトを /Assets/Editor/myPostprocessBuild.js と保存してビルドすれば、OnPostprocessBuild が実行されるわけです。

1
2
3
4
5
6
7
8
9
10
11
12
// myPostprocessBuild.js
#pragma strict
import UnityEditor.Callbacks;
@PostProcessBuild
 
static function OnPostprocessBuild(target : BuildTarget, pathToBuiltProject : String )
{
  Debug.Log( "myPostprocessBuild ---" );
  Debug.Log( pathToBuiltProject );
 
  // pathToBuiltProject は、Unity-iPhone.xcodeproj のあるディレクトリへのパス.
}

確かに実行されることを確認しました!

が、
なんか、
使いにくい。。

書き出されたファイルとかを処理するのは、Unity JavaScript(と私の力量)じゃ無理な気がします。。

他に方法がないかと調べたら、Perlとかで処理する方法がありました!
それが次の方法。
unity postprocessbuild scripts

PostprocessBuildPlayerで後処理

上記リンク先によると、“PostprocessBuildPlayer”という名前(拡張子なし)のファイルを /Assets/Editor/ 以下に配置しておくと、そのファイル内に書かれた、シェルスクリプトかPerlスクリプトが実行される、というわけです。
shスクリプトなら、そこから色々なスクリプトやプログラムを呼び出せると思うのですが、もう一気にいろいろ処理しちゃいたいので、今回はperlを選んでみました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl
 
use strict;
 
my $installPath = $ARGV[0];
 
# The type of player built:
my $target = $ARGV[1];
 
# What optimizations are applied.
# At the moment either "" or "strip" when Strip debug symbols is selected.
my $optimization = $ARGV[2];
 
# The name of the company set in the project settings
my $companyName = $ARGV[3];
 
# The name of the product set in the project settings
my $productName = $ARGV[4];
 
# The default screen width of the player.
my $width = $ARGV[5];
 
# The default screen height of the player 
my $height = $ARGV[6];

これですね!
しかし、私の環境ではprintの出力がUnityのコンソールに書きだされなかったので、ついでに下記のようなスクリプトを追記しました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Build Time.
my $buildTime = localtime(time);
 
# Debug print to log.txt
open( LOGFILE, "+>>log.txt" );
 
print LOGFILE "BUILD LOG --- $buildTime\n";
print LOGFILE "Install Path: $installPath\n";
print LOGFILE "Target      : $target\n";
print LOGFILE "Optimization: $optimization\n";
print LOGFILE "Company Name: $companyName\n";
print LOGFILE "Product Name: $productName\n";
print LOGFILE "Width       : $width\n";
print LOGFILE "Height      : $height\n";
print LOGFILE "\n";
 
close( LOGFILE );

プロジェクトフォルダにlog.txtというファイルが作成され、無事、下記のような出力がなされていることが確認されました!

1
2
3
4
5
6
7
8
BUILD LOG --- Wed Jun 26 15:58:20 2013
Install Path: /prj/201306-Test/Test
Target      : iPhone
Optimization: strip
Company Name: DefaultCompany
Product Name: 201306-Test
Width       : 1024
Height      : 768

これでできることが色々増えました!


[AD]

↓ちょっとした空き時間にiPhoneで見るのにベスト!

↓面白かったので全4巻購入しちゃいました!

限界集落(ギリギリ)温泉第一巻

限界集落(ギリギリ)温泉第一巻

カテゴリ:Kindle版

発売日:2013-01-05


Unityでアプリ内HTMLを表示:unity-easywebview

5
Filed under Unity
Tagged as , , , ,

先月Githubに公開していたUnityのiOS向けウェブ表示ライブラリ unity-easywebview ですが、ブログにコメントを頂きました。

「こちらのライブラリで、リソースにhtmlファイルを置いてそれを参照することはできるのでしょうか?」という質問に対し、「リソース内のhtmlファイルも表示できるはず」などと書きましたが、現状ではできませんでしたので、機能を追加しました。
以下はその使い方となります。

Unityのアセット内にファイルを追加

アプリ内にHTML(と関連ファイル)を含める方法ですが、【Unityでは /Assets/StreamingAssets/というディレクトリ内にあるファイルはそのままiOSのアプリから使えるようにバンドルされる】という仕組みを使います。
ということで、表示したいHTMLを /Assets/StreamingAssets/ 以下に配置します。
githubに上げているサンプルプロジェクトでは次のようになっています。
unity-easywebview bundle 1

呼び出しコードを変更

元々の機能の復習となりますが、unity-easywebviewを使い、インターネットのHTMLを呼ぶコードは次のようになります。

1
2
// Set AD : 320x50
EasyWebview.AddWebRect("http://www.torques.jp/banner/bannerTorquesPics.html", 0, 200, 320, 50, "Banner0");

今回追加した機能で、/Assets/StreamingAssets/myhtml/mybanner.html を読み込むコードとは次のようになります。

1
2
// Set AD : 320x50 from Bundle.
EasyWebview.AddBundleWebRect("myhtml", "mybanner", "html", 0, 200, 320, 50, "Banner0");

これで表示されました!
↓(画面中央に表示されているのがアプリ内HTMLです)
unity-easywebview bundle 2


[AD]

↓チュートリアルをいろいろやるのが上達への近道かな。

Unity 4マスターブック―3Dゲームエンジンを使いこなす

著者/訳者:和泉 信生

出版社:カットシステム( 2013-03 )

定価:

Amazon価格:¥ 3,240

単行本 ( 326 ページ )

ISBN-10 : 4877832742

ISBN-13 : 9784877832742


↓バンダイナムコ現役開発者によるUnity本!

ゲームの作り方 Unityで覚える遊びのアルゴリズム

著者/訳者:加藤 政樹

出版社:SBクリエイティブ( 2013-02-26 )

定価:

Amazon価格:¥ 3,888

単行本 ( 460 ページ )

ISBN-10 : 4797370084

ISBN-13 : 9784797370089


Unityに簡単に広告表示:unity-easywebview

6
Filed under Unity
Tagged as , , , ,

Unityで作ったiOSゲームにバナーを表示させたいとき、UIWebViewを表示できるとほとんどのことは処理出来ます。
ところが、標準機能で用意されていません。

既にあるライブラリ

そこで探してみると、一番有名な感じなのが、Unityの高橋啓治郎さんが作られたunity-webview-integrationです。

次に有名なのが、GREEの坂本一樹さんが作られたunity-webview。

これは前出のunity-webview-integrationを参考に作られたようです(情報ソース)

欲しかったライブラリ

私が欲しかったのは、指定位置に指定URLを表示するだけのもの。
しかも、今回はiOSで動作すればよく、Webの中身は外部リンクが動作すれば満足でした。
そういう用途には既存ライブラリの2つはちょっとヘビーな感じでした。
もちろん「大は小を兼ねる」という考え方も理解できるのですが、Unityのプラグインの構造を勉強するためにも上記ライブラリを参考に作りなおしてみました。

unity-easywebview

で、作ってみたのが、unity-easywebviewです。

ポイントは、二つ以上のUIWebViewを表示でき必要に応じて削除、追加をできるようにしたところです。
あと、位置の設定は普通にleft,top,width,heightの設定でできるようにしたところですね。
同梱しているサンプルを動かした様子はこんな感じです↓
unity-easywebview sample
ADとある二つの枠がUIWebViewで外部のHTMLを表示しています。その間にあるボタンは上側のUIWebViewを一旦破棄して再読み込みします。

インストール方法

インストール方法は他のUnityネイティブプラグインと同様で、上記リポジトリにあるPlugins以下のファイルを、/Assets/Plugins以下にコピーします。
unity-easywebview
上図のようになっていることを確認したら次のようなコードを追加することで表示できます。

1
EasyWebview.RemoveWebRectByName("http://url/to/ad.html", 0, 0, 320, 50, "AD-for-Title");

最後に追加しているのはこのWebViewへの名前で、この名前をキーとして、削除できるようにしています。

1
EasyWebview.RemoveWebRectByName("AD-for-Title");

ということで、Unity4以上でしか動作確認していませんが、MITライセンスですのでご自由にどうぞ。


[AD]

↓高橋啓治郎さんが書かれたUnity入門書。Unity始めるなら必読!

Unity入門 ~高機能ゲームエンジンによるマルチプラットフォーム開発~

著者/訳者:高橋 啓治郎

出版社:ソフトバンククリエイティブ( 2011-10-01 )

定価:

大型本 ( 332 ページ )

ISBN-10 : 4797365331

ISBN-13 : 9784797365337


↓Gitについての面白そうな書籍

アリスとボブのGit入門レッスン

著者/訳者:川野辺 正博

出版社:秀和システム( 2012-09-18 )

定価:

単行本 ( 288 ページ )

ISBN-10 : 4798035009

ISBN-13 : 9784798035000