デジタルフロッグ

Unityのアプリの開発をしながらいろいろと忘れないための備忘録でございます。

Anima2Dを使ってみたところ

今年からAnima2Dが無料でUnityで利用できるようになりました。 Anima2Dってなんなの?というところからですが、Spineと同じようなものと書かれていました。Spineってなんなの?っていう方はja.esotericsoftware.comこちらから確認してみて下さい。Anima2Dを…

パーティクルが四角いピンクになった時は・・・

エディター上では上手くいっていたけどビルドしてみると画面にちゃんと映っていたパーティクルがピンクの四角になっちゃうことがあったりします。WebGLでの開発をしていて結構ここで躓いてしまったので、メモで残しておきます。 Shader shad = Shader.Find("…

Video Player

Unity5.6bからVideo Playerが追加されましたね。ファイル形式はmp4を使用しています。 mp4のファイルをProjectにドラッグアンドドロップで追加して下さい。追加したファイルをそのままHierarchyにドラッグアンドドロップで追加します。 追加したらそのままUn…

SpriteEditorの新機能Edit Outline

karaagedigital.hatenablog.jp前回のSpriteEditorの使い方で画像が重なっている場合は綺麗に切り取れないと書いたのですが、Unity5.6bから追加された新機能で切り出す範囲を細かく指定する事が出来るみたいです。 SpriteEditorの左上からEdit Outlineを選択…

SpriteEditorの使い方

初歩的な部分で今更ですがSpriteEditorの使い方をまとめておきます。 SpriteEditorの使い方 まず適当にこんな画像を準備しました。背景が白くなっていますが、白い部分は透過処理しています。 透過処理しておかないとSpriteEditorで切り出すときに一枚の画像…

InvalidOperationException: Collection was modified; enumeration operation may not execute.が出た場合

C#

このエラーが何度か出てコードを見返しても原因がわからなかったのでgoogle先生に翻訳してもらったところ。InvalidOperationException:コレクションが変更されました。 列挙操作が実行されないことがあります。という事でした。調べてみると処理中にコレク…

非アクティブなコンポーネントを取得する方法

Component[] hoge = GetComponentsInChildren<Renderer>(true); (true)を入れてあげると非アクティブになっているオブジェクトのコンポーネントも取得することができます。 一気に子オブジェクトすべてのコンポーネントに変更をかけるときに非アクティブのコンポーネン</renderer>…

AssetBundleをサーバーから取得

IEnumerator Loadbundle() { string url = "http://hogehogehogehoge/hoge"; var www = new WWW(url); yield return www; var assetBundle = www.assetBundle; var prefab= assetBundle.LoadAsset<GameObject>("Object"); GameObject obj = (GameObject)Instantiate( pre</gameobject>…

シーンを追加してアクティブを切り替える流れ。

IEnumerator AddScene() { //シーンを非同期で追加する SceneManager.LoadScene( "Scene Name", LoadSceneMode.Additive); //シーン名を指定する Scene scene = SceneManager.GetSceneByName("Scene Name"); while ( !scene.isLoaded ) { yield return null;…

ボタンのイベントをスクリプトから登録、削除する方法

ボタンのイベントを削除する方法ですが、これは非永続的なイベントしか削除ができません。たしか using UnityEngine; using UnityEngine.UI; using System.Collections; public class hogehoge: MonoBehaviour { Button btn; void Awake() { btn = this.game…

ローカルのAssetBundleを読み込んで表示させてみよう

karaagedigital.hatenablog.jp前回書いたアセットバンドルを使ってみようでエクスポートするまでは作りました。ローカルから読み込む場合には作成したアセットバンドルをStreamingAssetsというフォルダを作ってそこに突っ込んだ方が後々よさそうです。 公式…

アセットバンドルを使ってみよう AssetBundle

まったくこの辺使ってなかったので新しく覚える為にやった事をザザッとまとめていこうと思います。 バンドルとは?ある製品に別の製品が付属して販売、あるいは配布すること。パソコンを「買ってすぐ使える」状態で販売するために、あらかじめOSやアプリケー…

using System; Randomクラスが使えない時の対処法

using UnityEngine; usgin System; この両方にRandomが存在していて両方かくと衝突してしまってRandom関数が使えなくなってしまいます。 Random.Range(x,y); Randomの前にUnityEngine.を付け加えてあげる事でこの問題は解決します。 UnityEngineの中のRandom…

uGUIを使った動きのあるフェードインアウト

こんな感じでフェードインアウトしていくのですが、どうでしょう。 ColorのAlphaをいじってフェードインアウトっていうのはとても簡単ですし、自分も使ってたのですがこうしたかっこいい感じでフェードインアウトをしたいと思ってたところ見つかったのでメモ…

自動で徘徊するAIを作ってみる

過去にLookAtを使って敵をこちら側に向けさせるということをやりました karaagedigital.hatenablog.jp 今回の趣旨としては同じなのですが、こちらは回転させるので反転させるとした場合にLookAtだと急激に反転するものがこちらでは回転させるのでクルッと振…

ストップウォッチでプログラムの処理のスピードを計る

プログラムをガリガリ書いて動かしてみるとなんだか処理が重たい…でもどこを直せば早くなるのかわからないという事ありませんか? 先日記事にしたTranslateとtransform.positionで動かしたときにどちらが早く処理できるかという事を書いたのですが、若干の差…

Quaternion.Eulerとtransform.Rotateの違い

C# UI

この違い、昨日説明したtransform.positionとtransform.Translateと同じような関係でして指定した角度になるのか、指定した量だけ回転させるのかの違いになります。 回転させたいときとか、一気に反転させたいときとか、あれ、どっちを使えばいいんだっけ?…

transform.positionとtransform.Translateの違いと処理速度

オブジェクトを移動させようとしたときにどっちを使おうかなー?といった感じで考えた事はないでしょうか。自分はあります。 両方ポジションを移動する事が出来るのですが、いったい何が違うのでしょうか? transform.Translate Translate()メソッドは移動し…

数学関数をまとめる

Math関数とMathf関数がある事をしっている人も多いと思いますが、中々どうして忘れてしまうものです。という事で今回はこれらの関数を忘れたときの為に書き留めておこうと思います。 Mathf関数 Pow(x,y) xのy乗になります。 Clamp(value, min, max); minは最…

画面タッチ スクリーン座標 ワールド座標 ビューポート座標 Canvas座標

Input.mousePosition マウスクリック時に取得されるInput.mousePositionですが、こちらはスクリーン座標となっており、320×480の場合は⇦が0で右が320になります。 Unityの世界の中ではオブジェクトを作った時の初期状態ではxが0yが0zが0でカメラの中心…

JoyStickを自作してみたその2

前回に引き続きまたJoystickの方をば… かなりむりやりな感じでしたが、少しずつ改善してゲームとして成り立つようにしたいと思い今日もごりごりやってました。 まず最初に今日の最終のJoystickの感じを… タッチした位置でJoyStickが生成されて敵を発見すると…

ものすごい無理矢理JoyStickを自作してみた

ものすごい無理矢理作ったのでJoyStickの範囲などの設定がまだできていませんが、とりあえずJoyStickらしきものが出来て、連動してキャラが動くようにはなりました。 まだまだちょっと自分でも理解があまりないので、出来るだけまとめられるようになったら再…

NavMeshを使って指定した場所に移動させる方法その2

昨日に続いて今日もNavMeshについて書いていきたいと思います。 まず移動させたい床を準備して下さい。 自分は3DオブジェクトのCubeを平べったく伸ばして使いました。 それでInspectorの右上にあるStaticですが、これにチェックを入れて下さい。 次にWindow…

NavMeshを使って指定した場所に移動させる方法その1

NavMeshって知ってる人も多いと思いますが本当これって最初しった時はかなりびっくりというかこれは楽だなーと思った事なので、ちょっとこの事を記事にしておきたいと思います。 NavMeshはRigidbodyとはまた別で動いているので物理現象を無視して移動します…

positionプロパティとlocalPositionプロパティの違い

どっちもポジションを動かせるしまあどっちでも変わらないんじゃないのかと思ってしまったり、使いどころがいまいちつかめてない人もいるはず。 という事で今日はpositionとlocalPositionの違いを書いていきたいと思います。 positionとは ポジションはワー…

Character ControllerでRigidbodyは使えない

Character Controllerを使っていてあれ、使えないんだ…と思ってしまったのがRigidbody。 isGroundedでなんで接地判断が出来ないんだと調べていたらRigidbodyではisGroundedは使えないという事でした…Character Controllerはとても便利ですが、こういった不便…

Cameraの理解を深めよう

必ず使われるCameraですが、結構Cameraは最初からあってそのままでいいじゃんっていう人も多いのではないでしょうか。 カメラって実はいろんな機能が備わっているのですが、実際その機能を上手に使いこなせてない人もいると思います。私もその中の一人なので…

影を付ける方法

簡単な事でもど忘れするという事でぼちぼち細かい事でも残しておこうと思います。 Directional lightを設置すると全体が明るくなりますが、Inspectorを見るとNo Shadowsとなっている部分があるのでそこの設定を変更するだけでオブジェクトの影が映し出されま…

MonoDevelopでコピペが出来ない場合

別でスクリプトを保存してて、それを自分のプロジェクトに突っ込もうと思ってコピペしようとしたらまったくできませんでした。 イライラしながらコピペできないんで手打ちで打ちましたが調べるとものすごい簡単に直りました。 MonoDevelopの再起動 これで解…

Standard AssetsのBloomを使ってオブジェクトを光らせる!

こんにちは。何かやりたい事がうまくできなくて半日調べてばかりで時間が過ぎました。 とりあえず今日は色々とやってたのですが、発行するものをどうやってつくるんだっけな…と久しぶりにやろうと思ったら忘れてたのでちゃんと残しておこうと思います。 Stan…