デジタルフロッグ

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…

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 …

アニメーションの終了をまたずにアニメーションを切り替える方法

すんごい簡単でTransitionをクリックしてInspectorを表示 Has Exit Timeのチェックを外します。これですぐに切り替わってくれます。 実際に切り替えてみましょう。 こんな感じになりました。 今日は自分で3Dのアニメーションを1から作ってたのですが、走っ…

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から勉強し始めてる人にとってよくわからないものですよね。 自分もちゃんと説明しろと言われても全然できないのでコルーチンについてこれからまとめていけたらと思います。 実際使わなくてもなんとかなったりしたりもする…

Gitのコマンドってどこから書くの?

これ本当に全然わからなかったんです。 本当。 全然わからなくてコマンドなんてもう知らん!とか思ってました。 ええ。 先日教わってきましたよ! ここですって。 Git Bashですって奥さん。 こんな画面です。 コマンドプロンプトで最初打とうと思ってたんで…

Instantiateで生成したオブジェクトに値を渡す 生成したオブジェクトの親子関係

こんばんにちは! 毎日楽しくUnityをさわれていますが、やっぱりゲームはやってるのも楽しいもので休みの日は一日気が付いたらゲームだけして終わってるという事も多々あります。 さて、今回はInstantiateでオブジェクトを生成した場合にそのオブジェクトに…

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

C#

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

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

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

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

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

iTweenを使った動的なメニューの表示

最近はiTweenの事ばかりやっていてゲームなるものを全く作っていません。 でもこういう積み重ねが面白いゲームを作るうえでは必要だと考えてはいますがどうでしょう(´・ω・`) それではiTweenを使って今回もざっとやっていきたいと思います。 Menuの作成 まず…

iTweenを使った動き

よくあるカードゲームやトランプなど、配られるような動きを作ってみたいと思います。 あくまで今回作るものはiTweenを使ってみてこういう動きも出来ますよというものであって完成形ではありません。 それでは最初にどういう動きをしているかを見てみましょ…

iTween Scaleメソッド一覧

ScaleメソッドはMoveメソッドと同じように ScaleTo ScaleFrom ScaleBy ScaleAdd ScaleUpdate とあります。 Moveの方の解説はこちらのリンクから飛んで確認してみて下さい。 karaagedigital.hatenablog.jp iTween.ScaleTo (gameObject, iTween.Hash ( "x", 5,…

iTween Moveメソッド一覧

MoveTo オブジェクトを現在の座標から指定した座標へ移動する MoveFrom オブジェクトを指定した座標から現在の座標へ移動する MoveBy オブジェクトを現在の座標から指定したベクトルの値だけ移動する MoveAdd 働きはMoveByと同様だが、ほかのアニメーション…

iTweenの使い方 直線的な動き

Unityをぼちぼち使われている方ならiTweenを使った事があるという人は多いのではないでしょうか。自分もそのうちの一人なのですが、iTweenの事をもっと詳しく掘り下げていきたいと思い今回まとめてみる事にしました。 iTweenで出来る事 基礎編 大体こんな感…

Bitbucketを使ってみよう SourceTreeでコミット・プッシュしてみよう

前回の記事ではクローンを作るところまでやりましたね。 karaagedigital.hatenablog.jp コミットしてみよう 前回作ったローカルリポジトリのhogehogeフォルダにTitleManager.csというCSファイルを突っ込んであります。そしてSourceTreeを開くと下記の画像の…

アニメーションの遷移

今回はアニメーションの遷移について。 久しぶりにやろうと思ったらちょっと忘れてたのでちゃんと残しておこうと思いました… ものっすごい適当にWindowsにデフォで備わってるペイントで絵を描いてアニメーションを作ってみました。 アタックを押すと攻撃のモ…

Bitbucketを使ってみよう

ユーザー名、メールアドレス、パスワードを入力するだけで登録できますので、取り合えず登録の部分は省いちゃいます。 リポジトリの作成をしてみよう リポジトリの作成は上のメニューバーのリポジトリをクリックすると展開されるのでそこからリポジトリの作…

GitHub - リポジトリの削除

作ったリポジトリを削除する方法です。試しに作ってみたものを消したくなってもどうやって消せばいいかわからないとあれなので最初に調べておきました。 まずリポジトリのページでSettingを選択します。 選択したら一番したの方にいくとDelete this reposito…

GitHub - リポジトリの作成

実際にGitHubにログインしてリポジトリを作成していきます。 登録後、ログインした後の画面です。 Read the guideはそのままでクリックするとGitHubで○○をやってみよう!てきな感じでどんな事が出来るのか英語で説明されています。 英語です。 英語が得意と…