最初はplayerオブジェクトはメンバにセットされていたのですが、 2019/08/15. 2019.11.26 Unity2D入門 スクロールアクションゲームを作る 敵のAIを作成してみる Unity 入門 2D ※非常にニュアンスだけのざっくりとしたソースに出来上がり非常に不本意ですが、 やりたい事はこんな感じです

AddForce, C#, GetAxis, Unity, 移動, VSCode for Windows10からBitbucketにpushするまで【自分用メモ】. WindowsServer2016のインストール覚書. こんなやり方もあり?Unity入門2Dゲームでダメージアクション 図解Unity入門2Dゲームで弾を飛ばして敵を倒す方法 図解Unity入門2Dゲーム・プレイヤーに体力を設定する方法 図解Unity入門2Dゲームの作り方・衝突判定を理解しよう で宣言したデータが可変する場合に毎フレーム毎に最新の情報を取得するのはこれしかできないのか? 講座について&利用規約. よくばりオンライン , 2020.02.20. 講座Q&A.

2018年7月23日, Unityで作るアクションゲームの基本であるPCのキーボードで操作してプレーヤーを動かすスクリプトを作ってみます。, プレーヤーを操作する方法はキーボードからの入力以外にも、ジョイスティックからの入力、画面タップによる入力、スマートフォンやタブレットなら傾きを検知する加速度センサーを使うこともできます。, どのデバイスでどのように遊んでもらうゲームにするかによって作り方や設定が変わってきます。, こちらはゲームの完成時のイメージです。ちょっとわかりにくいですが、十字カーソルで移動しながらスペースキーでジャンプしているところです。, ゲームを作るには操作したり、自動的に動き回らせるための画像や3Dモデルデータなどが必要になります。, ※ネットから画像をコピペして使用する場合は、著作権の問題が絡んできますので、むやみにネットに公開しないようにご注意ください。, 今回はWindowsの標準ドローソフト「ペイント」で色を付けただけの四角形を2種類用意しました。, 「Project」枠内にあるAssetsフォルダを選択して右クリックで「Create」>「Folder」と選択してください。, 操作はとても簡単です。画像データを「Project」>「Assets」>「Images」のへドラッグ・アンド・ドロップすればOKです。, 次に取り込んだ画像を「Scene」へドラッグ・アンド・ドロップすれば画像からゲームオブジェクトが自動的作られます。, 「Hierarchy」にはプレーヤー画像名と地面画像名が表示されていると思います。, ここまで出来たら一旦保存しておきます。画面上部の「File」>「Save Scenes」を選択して保存します。, さらに重力を受けた物理動作をさせるためPLAYER_GREENに「Rigidbody 2D」を追加します。, 今回は衝突判定は必要ないので各オブジェクトの「is Trigger」のチェックは外しておきます。, 「is Trigger」にチェックをいれるとオブジェクト同士がぶつからずに通り抜ける動作に変わります。, Unityではスクリプトがオブジェクトを認識するため方法として「Game Object」名を取得する方法と「tag」を取得する方法があります。, 今回は「tag」を活用してプレーヤーオブジェクトが地面オブジェクトを認識できるようにしてみます。, 「Edit」>「Project Settings」>「Tags and Layers」を選択します。, 「Inspector」に「Tags & Layers」が表示されるので、「Tags」項目の「+」をクリックして「ground」と入力します。, これでこのゲームないでは「ground」という名称のtagが利用可能になりました。次は、作成したtagをオブジェクトに適応してみます。, 「Ground」オブジェクトを選択した状態で「Inspector」>「Tag」>「ground」と選択します。, これで「Ground」オブジェクトは「ground」というtagで他のゲームオブジェクトから認識できるようになりました。, Box Collider 2DとRigidbody 2Dを追加して物理動作できるようにする。, 今回のスクリプトでは移動に使う入力にInput.GetAxis()を使用しています。, 引数に使用されているHorisontalはX軸方向の入力値を指定するためのものです。, コードの9行目にあるpublic Rigidbody2D rb2d;は2Dオブジェクト物理的力を加えたりするときに必要になるためPLAYERオブジェクトのRigidbody2Dをスクリプト内で扱うための入れ物として宣言しています。, 14行目で実際にPLAYERオブジェクト自身からRigidbody2Dを取得して入れ物である変数rb2dへ代入しています。, 34行目のOnCollisionEnter2Dはコライダーを持つオブジェクト同士が接触した瞬間に一回だけ動作する関数です。, たとえば、ゲームを開始してから一度もジャンプしないとゲームスタート時の一回だけ呼び出されて後は何もしない関数ということになります。, このOnCollisionEnter2Dは11行目のpublic bool isGroundedとセットで動作しています。, メインループのvoid FiexUpdate()内でにある25行目にあるif(isGround == true)でフラグとして使用されます。, 21行目と26行目でrb2d.AddForce()でPLAYERオブジェクトに力を加えています。21行目がX軸方向、26行目はY軸方向です。, 21行目のVector2d.rightはX軸の正の方向を基準とした数値取得の仕方をします。反対方向への入力はマイナスの値が入ります。, 26行目のnew Vector2d(0, 9.8f)はジャンプ中なのでX軸方向へは力を加えずY軸方向への力のみを加算するという意味です。, 26行目のForceMode2D.Impulseは勢いや衝撃を表現するときに使用するようです。, あまりこの辺は理解できていないのですが、当時参考にした内容をそのまま利用しています。, 今回はオブジェクト自身のコンポーネント(この例ではRigidbody2D)を取得しているため省略されていますが、他のオブジェクトに配置されているコンポーネント(スクリプトも含む)を操作する場合は、対象となるオブジェクトをスクリプト内の変数へ取得して、さらにそのコンポーネントを取得するという段階を踏む必要があります。, Unity, それを対象のオブジェクトにアタッチするのが普通だと思います。, オブジェクトの可変データに対するアプローチ方法の確立 ※非常にニュアンスだけのざっくりとしたソースに出来上がり非常に不本意ですが、 ただジャンプするというtransformを変更するスクリプトを作り 新着記事. 実際に動かしてみると、最初にソースが読み込まれた時のplayerの位置情報をキャッシュしてしまい、 このゲームで作る敵は4種類で お化け:ユニティちゃんを追いかけてくる敵 コウモリ:指定した地点を巡回する敵 スライム:ラ . public GameObject player; 非 常 に 雑 か つ 汎 用 性 の 無 い ソ ー ス !! やりたい事はこんな感じです. ホーム. 追いかけてくる敵の次は「指定した地点を通るように巡回する敵」を作りましょう。これは一見すると難しそうですが、ある工夫をすることで簡単に作ることができます。工夫:目標となるゲームオブジェクトを設定する今回プログラムを組む前に考えないといけない この敵の動きって正直playerと同じなんですよね、この処理をコピーしてるなんてダサすぎです, 今はアイドル状態、攻撃、ジャンプ、歩くの4つの動きなのでまだ良いですけど。

Unity使い方ガイド. 前回までで、プレイヤーキャラクターであるユニティちゃんの基本的な動きができました。次は敵キャラクターを作り、それにユニティちゃんが触れたらダメージを受けるようにしてみましょう。, では、まずは敵キャラクターの作り方です。今回は往復移動するウニの敵キャラだけなのでサクッと作ってしまいましょう。, 今回使う敵キャラクターのスプライト画像は「Unitychan2D」→「Sprites」フォルダにある「uni」です。アニメーション用に3枚のスプライトが用意されていますが、あまり違いがないのでここではアニメーションさせずに1枚だけ使います。, 好きなスプライトを1枚選んだら、それをヒエラルキーにドラッグ&ドロップしてゲームオブジェクトを作りましょう。できたら「タグ」と「レイヤー」をそれぞれ「Enemy」に変更しておいてください(※ない場合はプロジェクト設定で新しいタグやレイヤーを追加してください)。, これで敵のゲームオブジェクトができたので、必要なコンポーネントをアタッチします。下の図のように「2Dボックスコライダー」コンポーネントと、「くろくま基本アセット」に含まれるC#スクリプト「ReciprocatingObstacle」をアタッチしてください。, ReciprocatingObstacleは、ゲームオブジェクトを直線的に往復移動させるためのC#スクリプトです。パラーメーターは次のようになっています。, アタッチできたらゲームオブジェクトをプレハブ化しておきましょう。これで敵キャラクターができました。, そうしたら、次はユニティちゃんが敵に触れた時のダメージ処理を追加します。「PlayerController」スクリプトを次のように書き換えてください(※変更部分以外は省略してあります)。, 呼び出されるとHPを1減らします。HPが0なら自動的にDeadメソッドが呼ばれますが、1より大きければ後述のDamageTimerを実行します。, ダメージを受けた時、連続でダメージを受け続けないように無敵時間を設けるためのコルーチンです。一定時間の間だけ「ダメージを受けないフラグ」をONにします。, また、見た目が変わらないと無敵時間中であることがプレイヤーに伝わらないので、スプライトのON/OFFを0.05秒ごとに切り替えて点滅させる処理も行います。, ユニティちゃんのコライダーが他のコライダーに衝突した瞬間に呼ばれます。相手のゲームオブジェクトのタグを見て、「Enemy」ならダメージ処理を呼び出します。, 実際にウニに当たってみて、下の動画のようになっていれば成功です(※事前にユニティちゃんのHPを適当に増やしておきましょう)。. | Unity使い方ガイド. 図解Unity入門2Dゲームで敵を移動する方法 PREV 図解Unity入門2Dゲームで敵を移動する方法 NEXT 図解Unity入門2Dゲームで弾を飛ばして敵を倒す方法. 2018/10/28. 詳しくは【Unity 始め方】開発環境 2018.1.6f をインストールしてみた, 【Unity 始め方 入門】詳しいサンプルコード付き プロジェクトの作成手順と衝突判定プログラム(コライダーの使い方)解説 – Unityプロジェクトの始め方, 【Unity 始め方 入門】詳しいサンプルコード付き プロジェクトの作成手順と衝突判定プログラム(コライダーの使い方)解説 – Unityでのゲーム作成方法, 【Unity 始め方 入門】詳しいサンプルコード付き プロジェクトの作成手順と衝突判定プログラム(コライダーの使い方)解説 – シーンを保存する, 【Unity 始め方 入門】詳しいサンプルコード付き プロジェクトの作成手順と衝突判定プログラム(コライダーの使い方)解説 – ゲームオブジェクトにコライダーを設定する, 画像はキャラクターとなる画像と地面となる画像の2種類(ファイル形式はjpgでもpngでも大丈夫です)。.

playerが動いても敵はずっと同じ方向にplayerがいるという認識をしました。, これをなんとかしたかったのですが、方法が見つからず非常に不本意ながらFindしてみました。, モーションを実行するソースは個別に作る 講座について&利用規約 ... 講座Q&A.

ブログを報告する, Cocos2dx Http通信で外部DBから取得した値をpicojsonで解析する, Unity2D入門 スクロールアクションゲームを作る 〜攻撃アクションを作る -2回目〜, Unity2D入門 スクロールアクションゲームを作る 〜攻撃アクションを作る -1回目〜, AnsibleでFailed to connect to the host via sshと言われた. Copyright© こんなかんじですが、

2018年2月16日 入門書を2周3周してようやくUnityが体に馴染んできたので、練習がてら汎用性の高そうな2Dアクションゲーム向きの「静止(アイドリング)・歩く・ジャンプ(降下アニメーションあり)」ができるプレイヤーを作ってみようと思います(注:ロックバスターは打てません)。 2020 All Rights Reserved. ホーム. こんなもんをいちいち持っていられません。, playerの向きを取得するのに毎回Findが走る 敵キャラクターの作り方では、まずは敵キャラクターの作り方です。今 . をもう少し深く掘り下げたい, 都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!, raharu0425さんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog

Twitter Facebook はてブ Pocket. ホーム. VSCode for Windows10からBitbucketにpushするまで【自分用メモ】 2018/10/12. 2Dアクションゲーム「ユニティちゃんの2Dアクション」 敵キャラクター&ダメージ処理の作り方 . ホーム. ここでは下の動画のような、2D横スクロールアクションゲームのキャラクター移動について説明します。 この記事はUnity1weekという1週間ゲームジャムで作ったゲームを元にしています。実際の操作感を知りたい場合は以下のリンクからプレイできますので、試してみてください。