Roba Memo - 素人のUnity覚書と奮闘記

素人のUnity覚書と奮闘記

シングルトンクラス

やりたいこと シーンをまたいで変数値を保持するクラスを作りたい。 シングルトンクラスを作る using UnityEngine; using System.Collections; public class Global : MonoBehaviour { static public Global instance; void Awake(){ if (instance == null) …

Error : You are trying to create a MonoBehaviour using the 'new' keyword.

You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all MonoBehavior…

テキストの文字に輪郭線を入れる

UI

やりたいこと やり方 やりたいこと ↓ やり方 TextにShadowコンポーネントを追加する。 UI - Effects - Outline 以上。

エージェント同士を重ねて配置したい

問題点 解決策 問題点 NavMeshでエージェントを複数配置したとき、エージェント同士が回避しあうのでドラッグで位置設定したいときにお互いに押し合ってしまう。 解決策 Nav Mesh Agentコンポーネントの Obstacle Avoidance - Quality をNoneにする。 結果 …

Error : Failed to create agent because it is not close enough to the NavMesh

エラー内容 解決策 参考にしたサイト様 エラー内容 NaviMeshを使っていて、エージェントをスクリプトで配置しようとしたら、黄色い警告文が出た。 Failed to create agent because it is not close enough to the NavMesh 機械翻訳だと それがNavMeshに十分…

ドラッグする時にオブジェクトがカーソルに自動でセンタリングしないようにする

Unityでゲームオブジェクトをドラッグさせると、動かした瞬間にゲームオブジェクトがカーソルの位置に移動してしまう。 大きい画像を少しずつドラッグさせたい場合は、困る。 ということで、自動センタリングをさせない方法をメモ。 コード Vector3 offset; …

少しだけ進んだ

荒削りやけど、なんとか形になって来た。 ステータスが適当やからキャラクターがすぐに死んじゃうけど、一連の動きはこんなもんじゃなかろうか。 ステータスの管理をどうすればいいかとか、攻撃処理とか、何回もやり直して全然進まない。 完成する日はくるん…

CommandInvokationFailure: Failed to re-package resources. See the Console for details.

AdMob入れてビルドしようとしたら、このエラー。 CommandInvokationFailure: Failed to re-package resources. See the Console for details. ・SDK入れ直す ・SDKバージョンを変える ・JDK入れ直す ・JDKバージョンを変える ・AdMob入れ直す ・AdMobパッケ…

ScriptableObjectを使ってみた

ScripttableObjectとは 継承クラスを作る [CreateAssetMenu] [System.SerializableAttribute] データを使う方法 リストの読み込み パラメータの取得 メソッドを追加してみる メソッドの呼び出し方 注意点 ScripttableObjectとは 公式マニュアルによると・・…

呼び出し元のクラスやメソッドを知りたい

やりたいこと 方法 注意点 参考にしたサイト様 やりたいこと タイトル通り、呼び出しものとクラスやメソッドを調べたい。 方法 下記のコードを書くだけ。 System.Diagnostics.StackFrame caller = new System.Diagnostics.StackFrame (1); //メソッド名 Debu…

Transform.Rotate()が途中で変になる

やりたいこと 問題点 解決策 やりたいこと ゲームオブジェクトをクリックで時計回りに30度ごと回転させ、現在の回転角度を知りたい。 問題点 obj = 回転させたいオブジェクト rot = Z角度を保持する変数 GameObject obj; float rot; obj.transform.Rotate …

画像フォーマットを一括で設定したい【最新】

この記事を現バージョンに更新 robamemo.hatenablog.com 上の方法だと、古いメソッド使わんといて!って怒られるから、対処してみた。 コード Editorフォルダに以下のスクリプトを作成するだけ。 using UnityEngine; using UnityEditor; public class Custom…

パラパラアニメーション コルーチン編

これのコルーチン編 robamemo.hatenablog.com 仕様 コード 設定 開始コード 仕様 ・Image単体をprefabにしてCanvasに配置し、再生後はフェードアウトしてDestroy()する ・スプライトはリソースから連番で読み込む コード using System.Collections; using Sy…

yield return null と WaitForEndOfFrame の違い

どちらも、次のフレームで再開という感じだけど、タイミングが微妙に違うみたい。 Unity - マニュアル: イベント関数の実行順 ここにある、関数のフローチャートを拝借。 該当部分を抜粋 たぶん、これが再開される位置なんだと思う。 yield return nullは、…

コルーチン 中断って何を?

前記事からの続き。 robamemo.hatenablog.com おさらい ◯秒待って処理を再開したい サンプルコード 出力結果 中断て何を? おさらい yield return ナンチャラ =ナンチャラとタイミング合わせるからちょっと中断するねという意味。 さて、この中断って、何を…

yield retuen null って何さー?

Updateで処理すりゃええやん〜♪って思ってたんですが、記述が多くなると読み辛くなる → バグ増える。 ということで、イキって(?) コルーチン使ってみた。 基本の形 Updateみたいに毎フレーム実行する yield retuen null って何さー? 基本の形 StartCoroutin…

Raycastによるマウス座標との当たり判定

はまったのでメモ。 レイキャストについて マウス座標からRayを飛ばすには 名前でターゲットを探す方法 Physics.Raycast ()のパラメーター サンプルコード レイヤーマスクで探す方法 Physics.Raycast ()のパラメーター レイヤーマスク サンプルコード レイキ…

シートごとに.assetを作成した場合 [ Unity-Excel-Importer-Maker ]

robamemo.hatenablog.com これの続きです。 上記記事では、エクセルファイルを丸ごと.assetにしたけど、今度は分けてみる。 エクセルファイルをインポートする ファイルをリソースに移す 生成されたクラスの構造 データを参照する エクセルファイルをインポ…

エクセルデータをUnityに読み込みたい [ Unity-Excel-Importer-Maker ]

なんと!それが可能な神ツールがございました♪ tsubakit1.hateblo.jp ありがたく、使わせて頂きます。 ということで、使い方をメモ。 ダウンロードとインポート エクセルファイルを用意する 注意点 : 余白行は含まないこと! 注意点 : 拡張子は.xlsにするこ…

親の回転を無視したい

親の回転角度を引いて相殺すればええやん?って思ったら、簡単にいかなかったのでメモ。 やりたいこと オブジェクトの相関図 コード 実行結果 考え方 相殺の仕方 逆方向について やりたいこと 親(3Dゲームオブジェクト)が回転しても、子(スプライト)が…

矢を放物線状に飛ばしたい(2D 重力無視)

矢を放物線状に飛ばしたい!ということで四苦八苦した模様をメモ。 完成動画 ベジェ曲線の方程式 方程式の t って何? P1xを求める P1yを角度から求める 角度から求める理由 P1yの求めかた 距離に応じて角度を変化させる 1秒あたりの t の変化量 コーディン…

Mobの攻撃

関連記事:ディフェンスゲームを作る 目次 - Roba Memo - 素人のUnity覚書と奮闘記 細かいダメージ計算は後回しで、とりあえず1対1の攻撃処理をメモ。 前記事までのおさらい 処理の流れを考える 停止のタイミング 攻撃対象の絞り込み 処理の流れ キャラク…

お城の設定とHPの管理

関連記事:ディフェンスゲームを作る 目次 - Roba Memo - 素人のUnity覚書と奮闘記 お城の設定 HPゲージのスクリプト お城の設定 お城のHPを削って0になったら攻撃停止という処理を施したいので、お城にHPを持たせる必要がある。 細かい設定は、追々やってい…

ディフェンスゲームを作る 目次

robamemo.hatenablog.com robamemo.hatenablog.com robamemo.hatenablog.com robamemo.hatenablog.com

Mobをルート通りに移動させるには2 スプライトアニメーションの作成

前記事 robamemo.hatenablog.com 前記事では、とりあえずキューブをルート通りに移動させるところまで出来た。 このキューブに画像を付けて、歩行アニメーションを表示したい。 右方向に進んでいたら右を向いた画像を、上方向なら後ろ姿の画像に切り替える方…

Mobをルート通りに移動させるには1 キューブを移動させる

ディフェンスゲームの最初の壁。ルート通りに移動する方法。 四苦八苦した結果、それっぽいのができたのでメモ。 ちなみに、ナビゲーションは使いません。 1:マップを配置 2:方向転換用キューブを配置 3: Mob用のキューブを配置 4:方向を指定するに…

AdMob 導入方法(自分用)

自分用です。 AdMobでの手続きは割愛します。 パッケージをインポート iOS用設定 スクリプト AdMob用のゲームオブジェクトを作成し、スクリプトをアタッチする。 インタースティシャルのリクエスト インタースティシャルの表示 バナーの読み込みと表示 パッ…

Unity2D 当たり判定の取り方

※2017/08/02 加筆修正 例えば、キャラクターと障害物の当たり判定を取りたい場合。 障害物の設定 Box Collider 2Dを付ける サイズの調整方法 キャラクターの設定 Box Collider 2Dを付ける Rigidbody 2Dを付ける 物理演算が必要な場合 キャラクターの設定項目…

GameObjectのwidthを取得する

いわゆるココのwidthを取得したい場合。 コード 説明 コード GameObject gauge; float gaugeWidth; void Start () { gauge = gameObject.transform.Find ("HP/gauge").gameObject; gaugeWidth = gauge.GetComponent<RectTransform> ().sizeDelta.x; } 説明 ・ widthはfloat</recttransform>…

リジェクト 4.3 Design: Spam

Apple App Store審査ガイドラインより引用 4.3 スパム 同一のアプリケーションに対して複数のバンドルIDを作成しないでください。特定の場所、スポーツチーム、大学などに向けた異なるバージョンが存在するアプリケーションの場合は、単一のアプリケーション…