Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。コピー2017.12.22今回はUnityNetworkを使用したオンライン対応の第5回で、プレイヤーキャラクターの登場位置をいくつか作成し、そのどれかから出現するようにしてみます。プレイヤーキャラクターのHPが0以下になった時は、すぐに復活して登場するようにしていきます。死んでもすぐに復活するのでゾンビのように永遠に死なず生き返ってきます。(^_^;)前回はHPの表示機能とキャラクターの攻撃機能を作成しました。UnityNetworkでオンライン対応4-HPの表示と攻撃機能-UnityNetworkでHPの表示と同期、プレイヤー同士で攻撃をする機能を作成していきます。gametukurikata.com2017.12.14スポンサーリンクプレイヤーキャラクターの登場位置を作成まずはプレイヤーキャラクターの登場位置を作成していきます。Emptyを選択し名前をSpawnPointsとします。SpawnPointsの子要素に空のゲームオブジェクトを作成しSpawnPoint1とします。ComponentからNetwork→NetworkStartPositionを取り付けます。SpawnPoint1をCtrl+Dキーでコピーし、プレイヤーキャラクターを登場させたい数だけ増やし、それぞれのSpawnPointを移動させて登場させる位置を変更します。階層は↑のような感じにし、4つの登場位置を作成しました。SpawnPointのそれぞれは↑のようにNetworkStartPositionコンポーネントを設定しています。シーンビューで登場位置をどこに設定したかわかりやすくする為に、名前の横のアイコンを押し、アイコンの設定をしています。↑のようにどこに登場位置を設定したかわかるようになりました。登場位置の作成が終わったので、次はNetworkManagerゲームオブジェクトのNetworkManagerコンポーネントでどのようにプレイヤーキャラクターが登場するかの設定をします。MethodでRandomかRoundRobinを選択します。RandomはNetworkStartPositionを設定した位置にランダムに設定し、RoundRobinは循環して設定します。今回はRoundRobinに設定してみます。それではいくつかアプリケーションを起動し、プレイヤーキャラクターがSpawnPointに登場するか見てみましょう。RoundRobinに設定したので、循環してプレイヤーキャラクターが配置されてますね。Gameビューで表示がおかしくなってますが、おそらく動画の撮影の関係かと思います・・・・(^_^;)プレイヤーキャラクターのリスポーン次はキャラクターのHPが0以下になった時にHPを全回復させ、NetworkStartPositionの位置に再設定するようにします。UStatusスクリプトのSetHpメソッド内を変更します。();}SetHpではサーバーのみ動作するようにして、hpが0以下になったらHPを全回復させ、その後クライアントRPCメソッドとして作成したRpcRespawnを呼び出します。hpはSyncVarで同期させている為、サーバーでhpを書き換えるとクライアントのhpも書き変わります。HPをサーバーのみで減らし、それぞれのクライアントのRpcRespawnを呼び出して位置を再設定出来ます。RpcRespawnは以下のようになります。().position;}}クライアントRPCコールで呼び出されるので[ClientRpc]アトリビュートを取り付けます。自身のキャラクターであればそのキャラクターをNetworkStartPositionを設定した位置に再設定します。サーバーから全てのクライアントのRpcRespawnメソッドが呼ばれるので、自身の操作キャラクター(ローカルプレイヤー)だけの位置を設定します。それではいくつかアプリケーションを起動し確認してみます。↑のようになりました。攻撃のモーションの影響でだいぶ敵にダメージを与えるのに苦労してますが・・・(^_^;)HPが0以下になったらHPを全回復して、NetworkStartPositionのどこかに移動しました。見てわかる問題としては、HPを全回復した後に位置を移動しているところですね。普通ならばログイン画面に戻したり、しばらく参加出来ない等の処理が必要になると思います。それは少しづつ出来たらなと思いますが、今回の記事ではスルーしておきます。サーバーでHPを回復し、RPCコールでクライアントの位置を設定というところが出来たので良かったかなと思います。次回はプレイヤーキャラクターとは別にNPC(ノンプレイヤーキャラクター)を登場させてみようと思います。Lobbyアセットを使ってロビー機能を自分のゲームに搭載してみます。マルチプレイ対応(UNET)UnityNetworkでオンライン対応9-使用するプレイヤーをロビーで変更する-UnityNetworkのロビーで操作するキャラクターを変更出来るようにしていきます。マルチプレイ対応(UNET)UnityNetworkでオンライン対応7-ログインシーンとゲームシーンを分ける-UnityNetworkでログインシーンとゲームシーンを分けて作成してみます。マルチプレイ対応(UNET)UnityNetworkでオンライン対応2-キャラクターを登場させる-UnityNetworkでプレイヤーキャラクターをオンライン上に登場させるところまでを作成していきます。マルチプレイ対応(UNET)UnityNetworkでオンライン対応4-HPの表示と攻撃機能-UnityNetworkでHPの表示と同期、プレイヤー同士で攻撃をする機能を作成していきます。マルチプレイ対応(UNET)UnityNetworkでオンライン対応10-NetworkManagerを拡張して自前のUIから操作-UnityのNetworkManagerを拡張して自前のUIを使ったネットワーク処理を作成していきます。C#の多次元配列とジャグ配列を使用してみるUnityNetworkでオンライン対応6-敵キャラクターを出現させる-ホームオンライン対応マルチプレイ対応(UNET)スポンサーリンクサイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事に関する質問は送らないでください、返信は期待しないでください(._.))。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。機能を積み上げていく形になるので便利かも?gametukurikata.com2019.06.21の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なアクションゲームや、TPSゲームの作成までが出来ます。自作タイピングゲームタイピングゲームを作りました。WebGL形式なのでPCのブラウザで遊べます。以下からプレイ出来ます。FinalTypingUnityを使って作成したローマ字入力のタイピングゲームです。gametukurikata.com2022.01.02お知らせ2023/01/24個人的にUnity2022.2.3f1をインストールしました。2022/10/14UnityのIKを使って足の位置と角度を地面に合わせる機能Unityのゲームでキャラクターの両足が別の高さの地面の上にある時にそれぞれの足をそれぞれの地面につけるようにする機能を作成しますgametukurikata.com2016.04.11機能を少し修正しました。2020/09/19コメント欄は閉鎖しました。今までコメントを投稿してくださった方はありがとうございました。(^^)/2018/08/07わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。gametukurikata.com2019.08.01Unityを使い始めたばかりの人がつまづきやすい点を解消するUnityを使い始めたばかりの人が結構な確率で陥る不具合や疑問点を解消していきます。基本的にはブログに寄せられた質問への回答という感じです。gametukurikata.com2018.12.04も参照してみてください。小・中学生によるデジタルコンテンツ開発の全国大会ですuycc.unity3d.jp2022年大会の先行エントリーが開始されているようです。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。記事の内容に質問がある方へUnityを使った3Dゲームの作り方(かめくめ)の歩き方UnityのJavaScriptとC#を読み替えてどちらでも対応出来るようにするホーム検索トップサイドバータイトルとURLをコピーしました。