質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

3回答

27604閲覧

ゲーム unityでプレイヤーのステータス実装

user1041

総合スコア27

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

1グッド

8クリップ

投稿2015/04/02 13:53

unity2dでプレイヤーに攻撃力やHPや防御力等のオブジェクトをつけたいのですが、
やりかたがわかりません。コード例を教えてください

mirai_arsluv👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

求める回答からほど遠いものかもしれず申し訳ないのですが、回答させていただきます。

コード例です。

lang

1using UnityEngine; 2using System.Collections; 3 4public class CharaStatus : MonoBehaviour { 5 public int HP = 100; 6 public int Max_HP = 100; 7 public float speed = 1.0f; 8 public float rotateSpeed = 100f; 9 public float gravity = -9.81f; 10 public float angleLimit = 45f; 11} 12

まず、上記のように、自分で体力や移動速度などのパラメータを付け足していって、キャラクターのパラメータを一括して管理するスクリプトを書きます。(ここでは、このスクリプトをCharaStatus.csとします)
そして、そのパラメータをまとめたスクリプトをプレイヤーにコンポーネントとして付けてください(InspectorのAdd Component->Script->CharaStatusを選択して追加)。
そして、ここで設定したパラメータを同一オブジェクトに追加されている他のスクリプトから使う場合、例として、HPをログに出力したい場合、

lang

1using UnityEngine; 2using System.Collections; 3 4public class HogeHoge : MonoBehaviour { 5 private CharaStatus status; 6 7 void Start () { 8 status = GetComponent<CharaStatus>(); 9 Debug.Log(status.HP); 10 } 11} 12

と、このようにして使います。

投稿2015/05/07 04:11

ykun0

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

RPGなら、基本的にどのシーンでもステータスにアクセスする可能性があるので、
Character情報はシングルトンで管理すると便利ですね。

ykun0さんやanimeingさんの回答のように、ステータスを保持しておくためのデータ構造クラスを作るのが良いと思います。

ステータス管理したいキャラクターが一人だけならそのままシングルトンのクラスに書き込んでしまってもよいですが、そうでないなら、配列化して格納しておくのが良いかな。

投稿2015/10/22 06:36

Jake

総合スコア289

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ステータスオブジェクト用スクリプト(using略)

c#

1public class Status : MonoBehaviour { 2 3 private int Attack = 10; 4 private int Block = 5; 5 private int Hp = 650; 6 7 public int PostAttack(){ 8 return Attack; 9 } 10 public int PostBlock(){ 11 return Block; 12 } 13 public int PostHp(){ 14 return Hp; 15 } 16}

ステータス値取得スクリプト(using略)

c#

1public class Charactor : MonoBehaviour { 2 3 const string StatusName = "StatusObject"; 4 private GameObject StatusObj; 5 private Status status; 6 private int Attack; 7 private int Block; 8 private int Hp; 9 private int FullHp; 10 11 void Awake(){ 12 StatusObj = GameObject.Find(StatusName); 13 status = StatusObj.GetComponent<Status>(); 14 } 15 16//必要な時に呼び出す。 17 void GetAttack(){ 18 Attack = status.PostAttack(); 19 } 20 void GetBlock(){ 21 Block = status.PostBlock(); 22 } 23 void GetHp(){ 24 FullHp = status.PostHp(); 25 Hp = FullHp; 26 } 27}

投稿2015/10/21 17:00

編集2015/10/21 17:14
animeing

総合スコア136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問