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…

個人ゲーム開発者が送ってみた無料でレビューしてくれる海外サイト30個

まず最初に"無料で"と書きましたが、無料の場合はレビューをしてもらえるかどうかの保証はありません。そもそも無料のレビューは受け付けていないところもあります。基本的には以下の記事を参考にしています。 www.find-job.net上記の記事の中にはサイトが閉…

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のほぼコピペです。ぼかし画像を一枚しか作っていないこともあり、イマイチですね。本当は複…

Unityで自作ポストエフェクトを試してみた。

fspace.hatenablog.com上記のサイトを参考にしてUnityで初めてシェーダーを触ってみました。UnityのシェーダーはShaderLabと言って、頭の部分にシェーダーに値を渡すための記述を書き、下の方にCgかHLSLでシェーダーを書くみたいです。一応GLSLでも書けるみ…

GooglePlayGameServicesとGameCenterとAdMobを同時に利用しようとしてハマった件

GooglePlayGameServicesとGameCenterの導入に際しては、こちらが詳しいです。 yasuaki-ohama.hatenablog.com導入の仕方の説明は他の方の説明に譲って、GooglePlayGameServicesとGameCenterとAdMobを同時に使う際の注意。というか、たぶん同時利用は難しいと…

ちょこっとベターな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…

RAIIをC#でやるには?

RAIIとは? Resource Acquisition Is Initializationの略で、直訳すると"リソースの取得は初期時に"となります。これはC++やD言語で一般的なテクニックでリソースの取得と破棄を、変数のコンストラクタとデストラクタに関連付けて行うものです。例えば、下記…

C#のLinqについてまとめた。

c#

Linqについて C#にはC++にはないLinqという素晴らしい仕組みがあるらしい。脳に刻みこむためにメモした。以下のスライドを参照してまとめただけ。 http://www.slideshare.net/shotababa359/c-linq-to-objects 利用方法 using System.Linq を書くだけ。!!Linq…