質問: Matrix4x4.TRS( Vector3.zero, Quaternion.identity, new Vector3(Screen.width / baseWidth, Screen.height / baseHeight, 1f)); // ステータス. DrawPlayerStatus(); DrawEnemyStatus(); } } ### 試したこと ビルドする前の段階でサウンドの実装があり、実装前の段階のものをビルドすると表示されました。そこで表示されなくなったもののサウンドに関するコンポーネントを無効化してテストしてみましたが、表示されませんでした。 サウンドを実装するとビルドで不具合が起こることはあるのでしょうか? 回答お願い致します。 ### 補足情報(FW/ツールのバージョンなど) unity 4.3.3 参考書籍:「オンライン3Dアクションゲームの作り方」竹内大五郎
回答: 質問文で関連ソースコードとして挙げたCharacterStatus.csやCharacterStatusGui.csに要因はなく、AttackArea.csというプレイヤーの攻撃判定を作るのに使ったスクリプトに攻撃した対象の値を保存する処理の記述が無いためでした。そのためプレイヤーの武器オブジェクトに値が敵のステータスが保存されずにCharacterStatusGui.csのif文のplayerStatus.lastAttackTargetに値が入ってない状態になっていました。 C# 中略 // 敵ステータスの描画. void DrawEnemyStatus() { if (playerStatus.lastAttackTarget != null) { CharacterStatus target_status = playerStatus.lastAttackTarget.GetComponent(); DrawCharacterStatus( (baseWidth - enemyLifeBarRect.width) / 2.0f, 0f, target_status, enemyLifeBarRect, enemyFrontLifeBarColor); } } ``` ''' C# ・・・ // (プレイヤーの攻撃が敵に)当たった. void OnTriggerEnter(Collider other) { // 攻撃が当たった相手のDamageメッセージをおくる. other.SendMessage("Damage",GetAttackInfo()); // 攻撃した対象を保存. status.lastAttackTarget = other.transform.root.gameObject; ・・・ } 情報提示に至らない点が多くご不便おかけしましたが、 対応していただいた方々、ありがとうございました。