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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

3回答

2554閲覧

Unity最後の質問。

Anet

総合スコア27

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2015/06/19 01:44

編集2015/06/19 07:00

今回のゲーム制作の最後の質問です。

たとえば12345や6789、100、など
スコアを表示したいとき

それをスプライト、もしくはテクスチャを使って使いたい場合、
どのようにプログラムすればいいですか・・・?

![イメージ説明]WIDTH:600

上に表示しているものを使います。
この画像は個々に分かれている数字です。

このスコアはUnityでシーン移行後に持ってきた変数の値を一発で表示するものです。

using System;
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class TimeCounter : MonoBehaviour
{

[SerializeField] private Image[] images = new Image[4]; [SerializeField] private Sprite[] numberSprites = new Sprite[10]; private float latetime = 0; public float timeCount { get; set; } public static float timeresult; public static float lateresult; void Start() { SetTime(900); } void Update() { //if(Input.GetKeyDown(KeyCode.Y)) //{ // timeresult = timeCount; // lateresult = latetime; // FadeManager.Instance.LoadLevel("Result", 0.5f); //} } public void SetTime(float time) { timeCount = time; StartCoroutine(TimerStart()); } void SetNumbers(int sec, int val1, int val2) { string str = String.Format("{0:00}", sec); images[val1].sprite = numberSprites[Convert.ToInt32(str.Substring(0, 1))]; images[val2].sprite = numberSprites[Convert.ToInt32(str.Substring(1, 1))]; } IEnumerator TimerStart() { while (timeCount > 0) { int sec = Mathf.FloorToInt(timeCount % 60); SetNumbers(sec, 2, 3); int minu = Mathf.FloorToInt((timeCount - sec) / 60); SetNumbers(minu, 0, 1); yield return new WaitForSeconds(1.0f); timeCount -= 1.0f; latetime += 1.0f; } TimeOver(); } void TimeOver() { timeresult = timeCount; lateresult = latetime; FadeManager.Instance.LoadLevel("Result", 0.5f); }

}
上記のスクリプトのなかにあるtimeresultとlateresultを引っ張り出したいです。

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

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

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

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

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

guest

回答3

0

UIAtlasを使うのはどうでしょうか。
0〜9の画像を1つの画像(Atlas:アトラス)にまとめて、管理します。
それを使う時に、
"//~/" + number.ToString();
のようにフォルダと画像名で指定してあげると、その画像が取得(表示)できます。

自分はそれで、ゲームの時間カウンターとスコアカウンターを実装しました。

投稿2015/06/25 01:30

編集2015/06/25 01:31
runun

総合スコア305

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

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

0

int no[5]
int damy = (int)score;
int count = 0;

while( damy > 0 ){
no[count] = damy % 10;
damy /= 10;
count++;
}

これでいけないかな?

投稿2015/06/19 06:41

MasaakiIrie

総合スコア1021

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

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

Anet

2015/06/19 06:51

ええと、プログラムが何をした以下のイメージはついたのですが、これを使って画像の管理ならびに、描画を施すにはどうしたらいいですか?
Anet

2015/06/19 06:53

あと、残り時間をスコアとして表示するときに0を表示したいときどうしたらいいですか?
guest

0

http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/game/12.html
ここが参考になると思います。

基本は、int型の数字を桁毎に区切り、それぞれの桁に対応した数字画像を
順番に張り付けていく感じになると思います。

投稿2015/06/19 01:50

MasaakiIrie

総合スコア1021

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

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

Anet

2015/06/19 04:37

あ、質問内容を直します。
Anet

2015/06/19 04:39

あと、GUITextってどうやって作るんですか・・・? Unity5だとUI→TextとしかなくてGUITextがつくれないです・・・。
Anet

2015/06/19 06:30

guitextはできました。 でも、つぎに前回の質問に書いてあったプログラムを表示しようとすると float型をstring型に変換できなかったです。またfloat型をint型に変えて実行してもそもそものはなし変数の中にある数を引き出してそれを画面に出すということができませんでした・・・。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問