デジタルフロッグ

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

C#

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

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

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>…

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とは ポジションはワー…

Cameraの理解を深めよう

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

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

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

LookAtを2Dで再現するには

Quaternion FromToRotation(Vector3 fromDirection, Vector3 toDirection); fromDirection から toDirection への回転を作成します。 通常、ワールド空間で Transform を回転させ、座標の 1 つ、例えば、y 座標をターゲットの方向 toDirection に向かせるた…

コルーチン yield return nullについて yield return new WaitForSeconds(float)も;

最初にスクリプトをバンっと貼っておきます。 using UnityEngine;using System.Collections; public class hogehoge : MonoBehaviour { // Use this for initialization void Start () { StartCoroutine("cor"); } // Update is called once per frame void …

3D LookAtを使って敵をこちらに向けさせる Vector3.Lerpを使って動かす

using UnityEngine;using System.Collections; public class hogehoge : MonoBehaviour { [SerializeField] GameObject enemy; // Update is called once per frame void Update () { enemy.gameObject.transform.LookAt (this.gameObject.transform); }} ざ…

コルーチンとアップデートの流れ方

コルーチンってプログラミングを1から勉強し始めてる人にとってよくわからないものですよね。 自分もちゃんと説明しろと言われても全然できないのでコルーチンについてこれからまとめていけたらと思います。 実際使わなくてもなんとかなったりしたりもする…

C# if文 部分一致していたら

C#

パパッとこれについて書いてる人がいなくてちょっと探しました。 VBをよく使っていたのでVBならInStr関数があったのですが、どうもC#では使えないという事でどうしようかと思ってましたが、それっぽいのがあったので自分用に残しておきます。 if (string1.In…

タッチした位置にオブジェクトを移動させる C#

ひとつ前の記事に書いたのですが、わりと需要ありそうなので別記事で一応立てておきました。 Tweenを使うとたったのこれだけで移動出来ちゃう。 今回2DなのでカメラはOrthographicにしておいてください [SerializeField] GameObject a; // Update is called…

Unityで使うマウス判定、スマホタッチ判定のスクリプト

今日はiTweenを離れて?マウスとスマホのタッチについてです。 マウスのクリック判定とスマホのタッチ操作といってもスマホだとタッチの判定なので、スマホゲームを作られる方も必ず通る道だと思われます。 ざっくりとマウス操作のスクリプトを書いてみます…

varとは?

よく出てきますよね。var。 しかし、varの使いどころっていまいちつかめてなかったりします。そこでvarについて調べてみました。 variableの略なので、意味としては「変数」という意味でこれは変数、引数ですよと表しています。 var name = "あかさ太郎"; //…

GameObjectの基本モデルの生成をプログラミングで行おう

基本中の基本ですが、こういうのをしっかりまとめておかないといつかぼけてしまうかわかりません。それに自分もそうでしたが、こういう基礎知識を知りたいという人もUnity始めたての人は多いはずです。 GameObjectを生成してみよう まずとりあえず空のオブジ…

配列の並べ替え

かなり時間を無駄にしてしまった… ランダムな数字を昇順にしたかっただけなのに中々出来なくて手こずってしまいました。 簡単な事で解決しましたが… C#だと using System.Collections.Generic; をファイルの冒頭に書いておかないとジェネリックコレクション…