おもしろいもの、やくにたつもの を かきこむのだ!

Unity

タイムラインアニメーションで同じ階層に同じ名前のGameObjectがある時の話

警告が出る ヒエラルキービューで上のものにアニメーションが適用される

はじめてUnityを触る人にオススメのサイト

Unity workshop for video game art @ tama art university 動画付きで説明されるので分かりやすい。

Projection : Perspective で設定されたCameraの描画領域を計算する

Projection : Perspective で設定されたCameraの、ある距離でのカメラに映る領域を知りたいことがあるかと思う。 画面内/外に入った/出た という条件を入れたい時など。 Unityの公式リファレンスにやり方があったので、それを参考にするといいよ。 docs.unit…

Unity Japanに作ったゲーム取り上げてもらった

以前作った、SWISH!がUnity Japanに載った! Unity NEWS – Android / iOS 向け Unity タイトル『SWISH!』配信開始 japan.unity3d.com ツイートもしてもらえた! [Unityニュース] Android / iOS 向け Unity タイトル『SWISH!』配信開始 #unity http://t.co/fr…

UnityのHierarchy内のTransformのパスを返す拡張関数作った

Unityでゲームを作っているときに、 「実行中にHierarchy内のTransform(GameObject)のrootからのパスを知りたい」 ということがあったので、拡張関数作った。 Unity Transform's path extension. 多分、他にも作っている人いるんじゃないかな...と思いつつも…

UnityでSWISH!という2Dアクションスマホゲームを作りました

1週間ほど前になりますが、SWISH!というスマホ向けのゲームをリリースしました。 2Dジャンプアクション + Angry Birdsライクなカジュアルゲームです。 ダウンロード SWISH!Takashi Satoゲーム無料 SWISH! - Google Play の Android アプリ 開発について 細か…

Unity: n秒後のRigidbodyの移動先の位置を取得するスクリプト書いた

Unityでゲームを作っていると、 「このボールの落下位置を知りたい」 「この矢の軌跡を計算したい」 という感じで、n秒後のRigidbodyの移動先を知りたい というケースが結構あると思う。 自分も同じケースに遭遇したので、n秒後のRigidbodyの移動先の位置を…

Inspectorで配列を扱う時は要素のNullチェックを"絶対"入れるのだ!!

UnityのInspectorでGameObjectやTransformの配列を設定することがあると思うが、 その際は絶対に要素毎のnullチェックを入れるんだぞ!!という話。 というのも、シーンのちょっとした変更や、スクリプトの改修、参照先のオブジェクトの変更などで、配列の要素…

【Unity Advent Calendar 2014】git subtreeを駆使して最強のUnityゲーム開発環境を作るぞっ!!

この記事はUnity Advent Calendar 2014の参加記事です。 Unityでゲームを作っていると 「前に作ったゲームの機能を新しく作るゲームでも使いたい!!」 「コンポーネントのバグを直したから他のUnityプロジェクトにも反映したい!!」 ということがあるかと思い…

Unity UIの「ReferenceResolution」が「CanvasScaler」に変更されていた

ちなみに uGUI で想定解像度を指定して動かすには、ReferenceResolution をアタッチするのです。そうすりゃ画面サイズを変更してもUIサイズが変わらない。— 椿 (@tsubaki_t1) 2014, 8月 31 というわけで、CanvasにReferenceResolutionをアタッチしてゲームの…

Unity上でムービーの作成ができるアセット「Cinema Director」が良さ気!

Cinema Directorという、Unity上でムービー(みたいなもの)の作成できるアセットが良さそう。 デモムービーを見ると機能の概要が分かる。 Cinema Director - Visual Editing for Unity - YouTube Unityのシーン内のCameraやGameObject、キャラクターを組み合…

UnityでNullPointerExceptionが出そうなところはtry-catchじゃなくちゃんとnullチェックしよう!っていう話

今日、Unityでゲーム作ってた時の話。「このあたりNullPointerException出そうだからtry-catchでくくるか…」って感じでコード書いたら、それダメーっ!って言われた。— たかっしー☆タカシカンパニー非公認キャラ (@takashicompany) 2014, 10月 1 なんでも、t…

静的コンストラクタという選択肢[C#/Unity]

今日、Unityでゲーム作っていたら、静的コンストラクタというものを知った。 平たく言うなれば、 最初のインスタンスが作成される前、または静的メンバーが参照される前に、静的コンストラクターが自動的に呼び出されてクラスを初期化する というものだ。 Un…

UnityでColorとVector4に互換性があるっぽい

最近知ったことですが、UnityのColorとVector4は互換性があるようです。 ドキュメントはこちら C#のドキュメント.aspx)にも書いてあった。 使いどころがあんまりイメージつかないが、知っておくと困ったときに便利かも?

Unityで「2DのSpriteのPivot(基準点)が反映されない…」というあなたへ

Unityの2D SpriteのPivotを設定したのに、反映されない…というケースで困ったあなたへ。 例えば腕の形をしたスプライトを書き出して肩のところに基準点をつけたけど、関節の部分ではなく、スプライトの中央が回転軸になってしまうことがある。 解決方法 Spri…

ドット絵の3Dモデルを作ったので、そのままUnityにインポートしたらUnityが死んだ話

前に作ったドット絵の3Dモデルを、「リトポせず各ドットをボックス(Cube)で書き出してBoxColliderつけたら、いろいろ面白いゲーム作れるのでは?」と思って試したら、そもそもUnityエディターが重くて動かなかった話。 前に作ったドット絵の3Dモデルを、最適…

C#の??演算子が便利すぎる

??演算子が便利なことに気づく。 今まで、nullチェックして初期化されてなかったら、newして...みたいなことをやってたけど、??演算子を使うと、1行で書ける。 以前の例も間違いではないけど、コードがすっきりするから??演算子便利。

Unity4.6 Unity UI (uGUI)のCanvas内で表示順(重なり)を調整する

Unity UI(uGUI)のImageやTextの重なり順は、Hierarchyビューで下に列挙されたものほど、表示順(重なり)が上になる。 Hierarchyビュー内のTextとImageの順番を入れ替えると、表示順も入れ替わる 親子の関係もなく、Hierarchyビュー内で下に列挙されたものほど…

Unityで物理エンジン使ってゲーム作るときに、素材のUnity単位での大きさを決めておかないとヤバい

Unityで物理エンジン使ったゲーム作るとき、Unity単位と2Dのスプライトや3Dモデルの大きさを意識してデザインしないとダメだ。Unityエンジニアがそれを把握するのは当然として、素材作るデザイナーもそのことを把握していないといろいろと破綻して死ぬ。— タ…

Unity 4.6 Betaのドキュメントはどこに?

Unity 4.6のNew GUIのドキュメントってどっかにないんか。— タカシカンパニーの奇妙な冒険 (@takashicompany) 2014, 8月 24 と思ったら、4.6betaの中のドキュメントに入ってた— タカシカンパニーの奇妙な冒険 (@takashicompany) 2014, 8月 24 Googleで検索し…

Unity4.6 Unity UI (uGUI)のまとめ : Canvas

Unity 4.6のBeta版が公開され、念願の"uGUI"がお披露目となりました。 今日はCanvasについてのまとめを書きます。 Canvas UIを表示するコンポーネント。(NGUIでいうUIPanelに相当する) Canvas毎にドローコールが増える。(ドローコールが4のCanvasが2つある…

UnityでiOS向けにアプリアイコンやスプラッシュを設定する

ブログ、めっちゃ放置してた。 UnityでiOS向けにアプリを開発する際にアプリアイコンやスプラッシュを設定する場合は、 File > Build Settings > Player Settings... > 「Icon」 「Splash Image」で設定できる。 アプリアイコンをサイズ別に設定する ↓で設定…

UnityのプロファイラーをiOS端末につないで負荷をチェックする

Unity4.5から、USB経由でプロファイラーを使用できるようになった(iOS)ので、使い方をまとめた。 プロファイラーをiOS端末とつなくことで、実機でゲームを動かす際に、どのタイミングでCPUに負荷がかかるか、メモリが使用されるのかといったことが、簡単に分…

Unityでコールバックを使わずに他のオブジェクトの処理の完了を受け取る

UnityでAというオブジェクトが、別のBというオブジェクトのアニメーションや処理が終わったことを知りたい場合は、 C#のDelegateを使う AとBが相互に参照しあうようにして、BがAに完了を伝える という手段が挙げられる。 コールバックという方法ですね(たし…

UnityのInstantiate関数の速度を検証する

Instantiate関数でGameObjectを生成する際に、Prefabを元に生成するより、事前にSceneに配置したGameObjectを元に生成したした方が動作が早いという話を度々聞くので、本当に早いのか検証してみた。 結論から書くと Scene内に配置したGameObjectをInstantiat…

Unityでスクリプトを使ってアニメーションを作る

Unityでアニメーションを作る場合、 Unityのタイムラインアニメーションエディターで作る スクリプトでアニメーションを作る Blenderなどで作ったアニメーションをインポートする という方法が挙げられるかと思う。 今回は、スクリプトでアニメーションを作…

Unity開発でコード整形ルールを設定・共有する(MonoDevelop / Xamarin Studio)

Unityでゲームを開発する際に使うエディターと言えば、 UnityにビルドインされているMonoDevelopか、Xamarin Studioが主流になる。 MonoDevelopとXamarin Studioは、コード補完機能で自動でコード(の一部)を生成するが、個人の好みやプロジェクトのコーディ…

Unityでお手軽にTwitter・Line投稿機能をつくる

ゲームを作っていると、ソーシャルメディアと連携させたいということが結構あると思う。 ゲームの招待IDやスコアをポストしたり…といった感じで。 TwitterとLineへの投稿なら、お手軽に下記のコードでできる。 どちらも、文字のみの投稿となる。 ちなみに、F…

UnityのLayerMaskをビット演算なしで使う方法

UnityでLayerMaskを使う場合、下記のようにビット演算でLayerMaskを指定するケースがある。 ただ、自分なんかはビット演算ができないので、InspectorでLayerMaskを指定して使うをということをやります。

UnityでPrefabをInstantiateする時のGameObjectのActiveについて

UnityでUnityでPrefabをInstantiateをするときに、元となるPrefabのActiveがfalseだと、Instantiateしてシーン内に配置されたGameObjectのActiveもfalseになるようだ。— タカシカンパニーの奇妙な冒険 (@takashicompany) 2014, 6月 15 「生成時は非アクティ…