2014年03月05日

Unity マイプロダクト No.2

 2014年2月13日のブログに書いたマイプロジェクトNo.2、

 Rolling Ball

(玉転がしゲーム)が完成しました。

 もし、遊んでやろうと思っていただける、とても奇特な方がいらっしゃったら、こちらのサイトからどうぞ。

-----------------
ラベル:Unity3d
posted by Shindo Izo at 14:57| Comment(0) | Unity マイプロジェクト | 更新情報をチェックする

2014年03月07日

データのセーブとロード(unityC#)

 自分用の覚え書きです。

 プレイヤーが途中でゲームを止めたときに、その時点でのデータをセーブし、次回始めたとき続きからできるようにする方法です。こちらのサイト様を参考にさせてもらいました(というか、おんぶに抱っこですが)

 データはint,float,stringでできるようです。

<スクリプト>
 Empty Object(GameController)に以下のスクリプトをドロップします。
 レベルはプレイヤーが現在プレイしているレベルを変数に入れるようにすればOKかと思います。(下の例はStart()に入れているので保存する意味はないと思います)

using UnityEngine;
using System.Collections;

public class GameController : MonoBehaviour {
public int money  = 0;
public float timer = 0;
public string level;

void Awake ()
{
money = PlayerPrefs.GetInt("money");
timer = PlayerPrefs.GetFloat("timer");
level = PlayerPrefs.GetString("level");
}

void Start ()
{
level = "Level1";
PlayerPrefs.SetString("level",level);
}

void Update ()
{
timer += Time.deltaTime;
PlayerPrefs.SetFloat("timer",timer);
}

void OnGUI ()
{
if (GUI.Button(new Rect(5, 5, 100, 50), "+ 10$")) {
money +=10;
PlayerPrefs.SetInt("money", money);
}
if (GUI.Button(new Rect(5, 60, 100, 50), "Data Clear")) {
money = 0;
timer = 0;
PlayerPrefs.DeleteKey("money");
PlayerPrefs.DeleteKey("timer");
}
GUI.Label(new Rect(5, Screen.height/2 - 20, Screen.width-10, 50), "Level : "+level);
GUI.Label(new Rect(5, Screen.height/2 , Screen.width-10, 50), "Money : "+money + " $");
GUI.Label(new Rect(5, Screen.height/2+ 20, Screen.width-10, 50), "Time : "+timer);
}
}

<実行結果>
 +10$を押すと10$ずつ加算され、Data Clearを押すと、タイマーとお金がリセットされます。自動的に終了時点のデータが保存され、再開するとデータがロードされて続きから始められます。
1datahozondesu.jpg

<コマンドのことなど>
・ロード
 money = PlayerPrefs.GetInt("money");
 timer = PlayerPrefs.GetFloat("timer");
 level = PlayerPrefs.GetString("level");
・セーブ
 PlayerPrefs.SetInt("money", money);
 PlayerPrefs.SetFloat("timer",timer);
 PlayerPrefs.SetString("level",level);
・データクリアー
 PlayerPrefs.DeleteKey("money");

-----------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
posted by Shindo Izo at 17:38| Comment(0) | Unity3D マイマニュアル | 更新情報をチェックする

2014年03月22日

Unity マイプロダクト No.3

 数字順番押しゲーム

 Next Number

を作ってみました。
 もし、遊んでやろうと思っていただける、とても奇特な方がいらっしゃったら、こちらのサイトからどうぞ。

-----------------
posted by Shindo Izo at 14:26| Comment(0) | Unity マイプロジェクト | 更新情報をチェックする

2014年03月25日

Unity マイプロダクトno.4

 一人称視点のシューティングゲーム

 The Soldier

を作ってみました。
 実際に作ったのは去年の暮れで、Unityでとにかく最後まで作った最初の作品です。

 ド素人のプログラミングですが、もしお暇な方がいらっしゃったら、こちらのサイトからどうぞ。
---------------------
posted by Shindo Izo at 20:29| Comment(0) | Unity マイプロジェクト | 更新情報をチェックする

2014年03月26日

簡単なフェードイン(Unity C#)

 自分用の覚え書きです。

 場面の転換で、いきなり違う場面に変わると見ている側にはどうも変に感じます。そういうとき使われるのがお馴染みのフェードイン、フェードアウト。
 そこで、簡単にフェードインやフェードアウトをできないものか考えてみました。
 思いついたのが、ライトの強度を変える、というもの。

<フェードインのスクリプト>

using UnityEngine;
using System.Collections;

public class LightController : MonoBehaviour {
public float lastStrong; //求めるライト強度(0.0〜8.0)
private float lightStrong; //現在ライト強度
public float fadeSpeed; //フェードのスピード

void Start () {
light.intensity = 0.0f;
}

void Update () {
if(lightStrong <= lastStrong)
{
lightStrong += Time.deltaTime * fadeSpeed;
light.intensity = lightStrong;
}

}
}

 上のスクリプトをライトにドロップすればフェードインします。フェードアウトの場合は逆のスクリプトを作ればOKです。
-----------------
 <ご注意>私自身が全くの超初心者ですので、文中まちがいがあるかも知れません。その際はご容赦をお願いします。<(_ _)>
ラベル:Unity3d
posted by Shindo Izo at 18:14| Comment(0) | Unity3D マイマニュアル | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。