Unity

UnityでiOSとかでよくあるトグルスイッチを作りたい。

iOSとかである、こーいうトグルスイッチを作りたい!っと思って作ってみました。まず画から。こーいう緑色で楕円のONの画像に、 こーいう灰色で楕円のOFFの画像を被せ、 さらに白い丸いボタン画像を載せます。 Scriptで、タッチするとボタンが右に行って、OFF…

UnityでBGMのイントロ付きループに挑戦

最初に試したのはループ終端まで来たのを確認してAudioSource.timeをループ開始地点に飛ばす方法 www.shibuya24.info 次に試したのが、イントロ用とループ用でAudioSourceを2つ用意してループ用のAudioSourceをPlayScheduledでイントロ長分ずらして再生する…

UnityでビルドしたiOS版アプリがcompute_class_bitmap: Invalid type 13 for fieldと言われて落ちる

UnityでビルドしたiOS版アプリでcompute_class_bitmap: Invalid type 13 for fieldと言われて落ちる事案が発生しました。IL2CPPでビルドすれば大丈夫。けどMonoだとアウト。Monoのほうがビルドが爆速なので、私、実機で動作確認する際は結構Monoでビルドする…

数字が徐々に変わって目的の数値に行くスクリプト

ゲームのUIで、こんな感じの演出ってよくあると思います。スクリプトを書きました。以下のスクリプトをTextコンポーネントを持ったオブジェクトに貼り付けて、SlideToNumber( from_number, to_number, duration )を呼べば、from_numberからto_numberへdurati…

Unityでビルドした後、XCode上でSiginingのTeamを指定するのがめんどくさかったけどUnity側で設定できた。

だいぶ前から使っていて、前回の記事でもすでに使っていたのですが、ブログにメモしていなかったので書いておきます。以前からUnityでiOS用にビルドした後にXCode上でSiginingのTeamの部分を設定するのがめんどくさいなぁと思っていました。ここ↓ Unity5.6に…

UnityアプリのiOS版にアドフリくんを導入する際にXCode上での操作をしたくないので頑張ってみた。

アドフリくんとは アドフリくんとは、俗に言うSSPというものです。SSPとはSupply Side Platform(サプライ サイド プラットフォーム)の略語で、簡単に言うといくつかあるアドネットワークから適したものを自動で選んでくれて収益を最大化してくれるツールで…

【unity】プログラマーがデザイナーとコンポーザーと協力してゲームを作った話【 #Economicity 】

新作ゲーム「街づくりパズル エコノミシティ – ECONOMICITY -」をリリースしました!Economicityのせいで電車を乗り過ごしたというご意見もあり、業が深いゲームを作ってしまったなと反省しております。ダウンロードリンクはこの記事の最下部にまとめてあり…

uGUIで2色補完する(黒を○色、白を○色にする)

こういう3種類の絵を出したい時に、色違いのテクスチャーを用意するのってめんどくさいですよね?見た目の色違いだけなのに、テクスチャに色を乗算するだけではどうにもならないし... けどなんとか、左端の白黒のテクスチャ1枚で済ませたい。黒色の部分を○○…

Unityで作ったアプリのAndroid版で set_interactable can only be called in main thread などというエラーが出て困った話

Unityで作ったアプリのAndroid版で set_interactable can only be called in main thread などというエラーが出て困っておりました。メインスレッド以外でset_interactable呼ぶなや!ってことみたいです。どうもAdMobのinterstitialがCloseした時のCallbackで…

UniRxを使ってて気になったこと

AddToしているのものをIDisposable.Dispose()して、そのあとオブジェクトを廃棄したら二重解放になる? 結論、ならないので気にしなくて大丈夫な模様。下記のコードでは、Disposeした後、AddToしたgameObjectを破棄しているが、特にエラーは発生しなかった。…

UniRxを1日勉強してみた感想

結論 まず最初に結論を。ゲーム開発がメインの私的にはObserveEveryValueChanged, Timer, AddTo(安全のため必須)あたりを使えれば十分かなぁという感想。実は、気づいていないすごい便利な使い方とかあるかもしれないので、オススメの使い方がありましたら教…

Unityで作ったアンドロイドアプリが吐くログを確認する方法

Android SDKへのパス/platform-tools にあるadbというコマンドを使うことでログを見ることができます。 Android SDKへのパスは、Android Studioを立ち上げて、「Android Studio」->「Preference」->「Android SDK」として、上の方にあるAndroid SDK Location…

typeface animatorとoutlineの併用で、ちょっとハマった

Typeface Animatorという超絶簡単にオシャレにテキストを動かせるAssetがあります。https://www.assetstore.unity3d.com/en/#!/content/37445先日、こちらのアセットとOutlineコンポーネントと一緒に使ってたらうまく動かなくてハマったのでメモ。どういうふ…

CosやSinをテーブル引きにする効果

- 追記 2017/2/8 23:20各所からツッコミを受けました。 テーブル引きの恩恵を受けるようなコードは、現在の実践環境ではあまりなく、普通に関数を使ったほうが有利というのが説が多いです。 以下のテストはキャッシュが効きやすい状態のテストなので一応、テ…

UnityException: Unable to install APK! Installation failed. See the Console for details

UnityでAndroid版をBuild And Run しようとした時に、突如として表題の例外が発生するようになって困った。answers.unity3d.comこちらに解決策が↑Player Settings -> Other Settingsで、Bundle Version Codeをあげたらインストールできた。たまにUnityが落ち…

use of undeclared identifier 'Unity' とか 'UI' のエラー

UnityでiOS版のビルド時に、Scripting BackendをMono2xにしてStriping Levelを何某かにしていると、以下のようにXCode側でエラーが出ることがあるもよう。とりあえずstripping levelをdisabledにすれば、一応回避できる。Mono2xでのビルドは、基本デバッグ用…

XCodeでビルドした時に「Appの有効なaps-environmentエンタイトルメント文字列が見つかりません」というエラーが出る

XCodeでビルドした時に「Appの有効なaps-environmentエンタイトルメント文字列が見つかりません」というエラーが出た。これは証明書にPush Notificationが無いかららしい。最近のXCodeは「Automatically manage signing」にチェックを入れておくと証明書を勝…

AndroidManifest.xml:20: error: Error: No resource found that matches the given name (at 'theme' with value '@style/Theme.IAPTheme のエラー対応

UnityでAdMobを入れ直したからか、Android版をビルドするときに以下のようなエラーが出るようになっちゃいました。 CommandInvokationFailure: Failed to re-package resources. /Users/wakepon/Library/Android/sdk/build-tools/23.0.2/aapt package --auto…

ゲーム中にバンドルバージョンを表示する

バグ報告を受けたときに「えっ、それどのバージョンのロムで発生したの?」って聞きたいときにタイトル画面などでバンドルバージョンを表示するようにしておくと便利だったりします。バンドルバージョン自体はUnityEditor.PlayerSettings.bundleVersionで取…

OnTriggerEnter2DとOnCollisionEnter2Dの違い

OnTriggerEnter2DとOnCollisionEnter2Dの違いが分からん!更に言うと、OnCollisionExit2DとOnTriggerExit2Dの違い、OnCollisionStay2DとOnTriggerStay2Dの違いも分からん!っとなったので調べました。2Dについて書いていますが、基本3Dも一緒だと思います。 …

【Unity道場】Unity 5.4 & 5.5 新機能キャッチアップ講座に行ってきた。

「Unity 5.4 & 5.5 新機能キャッチアップ講座」に行ってきました。このような回を無料かつ軽食付きで開催してくれるUnity Japan様には頭が上がりません。ありがとうございます。個人的に気になったポイントと所感をメモ。 Unity5.4 GPU Instancing ライトプ…

Unityで transform.localPosition.x = 1.0f; ができないわけ

C#初心者の私がUnityで最初戸惑ったのはtransform.localPosition.x = 1.0f;というようなことができないことです。これをやろうとすると、 error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.localPosition'. Consider stori…

UnityでUnit Testを行う

先日、勉強会でUnity Tests Runnerというのものがあることを知りました。もともと、Unity Test Toolsというものの一部だったのが、Unity5.3から組み込みになったらしいです。docs.unity3d.comというわけで使ってみました。使い方は簡単で、図のように「creat…

AudioSourceの再生が終わったかどうかを取得する方法(が見つからない...)

表題の件ですが、結局いまのところ解決していません。AudioSourceクラスにはisPlayingというプロパティがあります。一番最初に思いつくのは、これがfalseになったら再生が終わったと判断するという手です。しかし、これには落とし穴があって、Pause()を呼ぶ…

C#のlock構文

FruitsNinjaのCloneのソースコードを見ていてc#にlock構文があることを知りました。https://www.assetstore.unity3d.com/jp/#!/content/65879 マルチスレッドのプログラムでは、ちゃんと排他制御をしないと問題がおきます。その代表格がsingletonクラスで、…

全てのシーンに存在し、一つしか存在してはいけないマネージャー的存在の実装

kan-kikuchi.hatenablog.comこの記事を読んで、最近読んだFruitsNinjaをCloneしたアセットのことを思い出したので記事にします。https://www.assetstore.unity3d.com/jp/#!/content/65879ところで、このアセット、凄いです!画像変えるだけで、vegetable nin…

Unity Remote 5を使ってみた

先日、実機確認のためのビルド時間に悩んでいるという話をしたら、Unity Remoteというのを教えてもらったので、使ってみました。Unity Remoteとは、ゲームの実行はUnity Editor上で行われるのですが入力はUSBで繋いだデバイス側から行えるというものです。ま…

UnityのAsset「Android Native Plugin」でエラー(AdMobとの相性が悪いようでした)

UnityのAsset「Android Native Plugin」でビルドエラー(最新版だけ?)UnityでGoogleのGame Service系を簡単に使えるようにすることで有名なアセット「Android Native Plugin」を導入したのですが、ビルドしようとすると下記のようなエラーが出ていました。 C…

Unityのシェーダーを書くときに確認しそうなページメモ

ビルトインのシェーダー変数 docs.unity3d.com 定義済みシェーダープリプロセッサーマクロ docs.unity3d.com Shaderのプロパティについて docs.unity3d.com "UnityCG.cginc"内の便利関数 docs.unity3d.com サーフェスシェーダーの使用例たくさん docs.unity3…

Unityのレンダリング順について

Unityの、ShaderLabにはQueueというレンダリング順をコントロールするためのタグがあります。詳しくは、以下のページに書かれていますが、自分でも自分の言葉でまとめてみます。 タグ名 内部インデックス 説明 Background 1000 他より前にレンダリングされま…

Unityで、Editorではシェーダーがちゃんと実行されているのに実機ではシェーダーがちゃんと実行されなくてハマった件

まず第一に、 Shader.Find( シェーダー名 )としていたのですが、これが失敗していました。初歩的ですいません。これはシーンから直接参照されていないリソースは、Resourcesフォルダに入れておかないとアプリに組み込まれないからです。というわけで、Resour…

トイカメラ風のフィルター

トイカメラ風フィルターです。上下を暈すだけという、ちゃっちいテクニックです。Shaderの練習のために作ってみました。ぼかし画像を作る部分は標準アセットのBlurのほぼコピペです。ぼかし画像を一枚しか作っていないこともあり、イマイチですね。本当は複…

ちょこっとベターなSingletonMonoBehaviour

tsubakit1.hateblo.jpこちらの記事を参考にしたSingletonMonoBehaviourを利用していたのですが、SingletonMonoBehaviourの絡むバグが発生し、それを発生しにくくできないかと思って、ちょこっと変えてみました。上記のSingletonMonoBehaviourでは、Instance…

以前作ったSoundManagerの改良

効果音を鳴らした後にスクリプトからFadeOutしたり、FadeInとかしたくなったので、以前作ったSoundManagerを改良しました。qiita.com (この時はqiita使ってた...) Handleを返すようにして、Handle経由でFadeIn, FadeOutができるように それにともない。同じ…

Unityの単位系メモ

今日は本当はUnity Remoteの話を書こうと思ったのですが、ちょっと後日に回します。Unityのグリッドサイズとか、Cubeのサイズとか、ちょいちょい忘れるのでメモ。 項目 単位 主グリッド 1m*1m 副グリッド 10cm*10cm Cubeのサイズ 10cm*10cm Sphereのサイズ …

UnityでiOS向けのビルドを短時間で終わらせる簡単な方法

この記事の環境:Unity version 5.4.0f3 Unityで開発していると、どうしても実機でテストしなくちゃならないことがあります。例えば、加速度センサを使ったゲームとかはPC上ではテストできません。そこでiOS用にビルドしなくちゃいけないんですが、これがめち…

BlenderからUnityへ出力する際のメモ

Blenderで作ったモデルをFBXに出力する際のスケールや回転が、出力設定によって色々変わって混乱したのでメモ。 BlenderでApply Transformにチェックを入れないで出力した場合 Blenderで出したモデルは頂点座標は 1.0/100.0 されて、スケールに100倍掛けられ…

transformは遅い説の検証

qiita.comこちらの記事によるとtransformは内部でGetComponentをしているので遅いらしいです。気になったので自分でも試してみました。テスト環境 Unity5.4.0f3 MacBook Pro (Retina, Mid 2012) iPhone se まずは以下の様なコードで。 using UnityEngine; us…

Editorで編集中に気づくと何故かNullReferenceExceptionのエラーが出ている件

Editorで編集中に気づくと、たまに、 NullReferenceException: Object reference not set to an instance of an object というエラーが出ていて、編集中に?何故?Editor拡張周りに何かバグが?って思っていたのですが、違いました。理由は、Reset関数のせい…

MonoBehaviourのAwake、Start、Updateという関数が呼ばれる仕組み

MonoBehaviourを継承してAwake、Start、Update等という関数を作るとUnity側で勝手に呼んでくれますが、これがいったいどういう仕組で動いているのかが謎でした。最初、MonoBehaviour側にvirtualな関数、もしくはabstractな関数で定義されているのかとも思っ…

Unity+iOSでitunes connectにアップロードする際にERROR ITMS-90086が出た時の対処

先日、itunes connectにアプリをアップロードしようとしたら以下の様なエラーが出ました。 ERROR ITMS-90086: "Missing 64-bit support. iOS apps submitted to the App Store must include 64-bit support and be built with the iOS 8 SDK or later. We re…

ゲームビューでの見え方を確認しつつシーンビューでパラメータ調整する方法3つ

1, シーンビューとゲームビューを並列に並べて作業する 一番シンプルな方法。編集画面が狭くなりがちなのが難点です。 2, シーンビューの見え方をゲームビューと同じにする Cameraを選択する 「GameObject」->「Align View to Selected」を選択する こちらは…

UnityのInputFieldでちょっとハマったこと

文字を入力するUIとして便利なInputFieldを使っていてちょっとハマったのでメモ。入力された文字は、InputField以下のTextオブジェクトに入り表示されます。 しかしTextオブジェクトが十分に大きくない場合は、最初に入力した文字が削られたものしか入ってい…

Hierarchyに、オブジェクトのアクティブを変更するチェックボックスと、オブジェクトの編集可能不可能を変更するアイコンと、無効なコンポーネントがアタッチされているかどうかを表示。

長いタイトルですいません。下記のスライドの中でHierarchyに関数エディタ拡張の例がいくつか紹介されていたのですが、 http://www.slideshare.net/shotababa359/unity-49731764この中から自分的に使いそうだった オブジェクトのアクティブを変更するチェッ…

Unity5.4.0にしたら、Pluginが重複してるっていうエラーがでた

Unity5.4.0にしてiOSのビルドをしようと思ったら以下の様なエラーが、 Plugin 'GoogleMobileAds.framework' is used from several locations: Assets/Plugins/iOS/GoogleMobileAds.framework would be copied to <PluginPath>/GoogleMobileAds.framework Assets/Plugins/</pluginpath>…

Unity(5.3.5)で丸影がちゃんとでない件 〜解決済み〜

皆さん、丸影好きですか?僕は好きです。ShadowMapよりたいてい処理が軽いし、ジャギらないし。Unity version 5.3.5f1 で丸影(ProjectorのShadow)を使ってみてたのですが、下の画像の様にちゃんと影が出なくなっていました。Planeには影も形もなく、Cubeには…

usingとIDisposableを使って簡易的な処理計測クラスを作る

先日、書いたusingとDisposerを使って簡易的な処理計測クラスを作ってみました。 using UnityEngine;//for Debug.Log and Debug.Assert using System; public class ProcessTimer { System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwa…

Unityでビルド後に自動でRomをアップロードする拡張

Unityで作ったAndroid用のRomを他の人にテストプレイしてもらうときに、FTPツールを使っていちいちアップロードしていたのだけど、それがいちいちめんどくさかった。そこで自動で行うようにしてみました。c#でFTPを利用するのは以下を参考にしました。 Simpl…

DoTweenのcanvasGroup.DoFade( 0, 1 ).OnComplete( completeFunction )みたいなことがしたい

サンプルプロジェクトをgithubにあげてます。github.comこないだUnityの勉強会に行って、UnityのAssetでTweenアニメをしてくれるDoTweenというものがあるのを知りました。dotween.demigiant.com そこで出てきたサンプルコードで以下の様なものがありました。…

Excelから翻訳データを読み込んでTextに突っ込むTranslateManagerを作った

タイトルでだいたい説明した感じですが、ポイントとしては、 TagProcessorクラスを介することでタグ解釈ができる(後述) UnityEngine.UI.Textのtextに$$で始まるキーを入れておくと、対応する訳を入れてくれる Resources.FindObjectsOfTypeAll()でヒエラルキ…