新規記事の投稿を行うことで、非表示にすることが可能です。
2019年03月06日
2019年03月04日
【Unity】サンドボックスゲームのブロック設置(配置)処理の実装(マイクラの作り方?)
今作ってるゲームのデザインが
マイクラのような「ブロックの世界」って感じでして、
そこで
「ブロックをどう置こうか」
という問題になってきまして...。
まぁ、ゲーム内で建築とか出来る訳では
無いんですけどね?
今回のゲームのデザイン上、
「ブロックをコンセプトにしたステージを作成しなければ...」
というわけで。
ゲーム内ではなく、
「シーンビュー上でブロックを配置して
ステージを作成できるエディタ拡張」
を作ったのですが、 なんと 成功っ!
今回の記事は、それを「ゲーム内」で行えるように
改変したものを作っていきます。
あ、もちろん作るのは3Dです。
続きを読む
マイクラのような「ブロックの世界」って感じでして、
そこで
「ブロックをどう置こうか」
という問題になってきまして...。
まぁ、ゲーム内で建築とか出来る訳では
無いんですけどね?
今回のゲームのデザイン上、
「ブロックをコンセプトにしたステージを作成しなければ...」
というわけで。
ゲーム内ではなく、
「シーンビュー上でブロックを配置して
ステージを作成できるエディタ拡張」
を作ったのですが、 なんと 成功っ!
今回の記事は、それを「ゲーム内」で行えるように
改変したものを作っていきます。
あ、もちろん作るのは3Dです。
続きを読む
2019年01月04日
【Unity】エンターキーのキーコード(判定)
Unity使ってて思うんですが、
エンターキーを押した判定とか
全然使わない…。
ですが、皆無ではないですよね。
いざ使うとなると、エンターキーの
キーコードを忘れてしまってました。
今はもう覚えております。
一応のメモと、
Unityでのエンターのキーコードを
検索した人向けですかね。
こう書けばエンターキーの入力を
判定出来ます。
返り値は多分booleanです。
キーコードは
「Enter」
ではなく
「Return」。
なぜだ…
ちなみに、「キーコード」とは、
unityでキーを扱う際の識別文字列です。
ではでは
エンターキーを押した判定とか
全然使わない…。
ですが、皆無ではないですよね。
いざ使うとなると、エンターキーの
キーコードを忘れてしまってました。
今はもう覚えております。
一応のメモと、
Unityでのエンターのキーコードを
検索した人向けですかね。
Input.GetKey(KeyCode.Return);
こう書けばエンターキーの入力を
判定出来ます。
返り値は多分booleanです。
キーコードは
「Enter」
ではなく
「Return」。
なぜだ…
ちなみに、「キーコード」とは、
unityでキーを扱う際の識別文字列です。
ではでは
2018年11月25日
【Unity シーン関連メモ】現在シーンを再読み込み(リロード)する方法
アプリ制作時に調べたのでメモメモ。
まず、一行目の
ですが、
これはUnityに
「こういう機能を使いますよ」
という呼びかけです。
これを行っていることで、
関連した機能が使えるようになります。
ここでは、「シーンマネージャー」という機能を
使用するようにしているので、
様々なシーンの管理がスクリプトから出来るようになります。
↑これは関数ですね。
まぁ、これは分かると思うので吹っ飛ばします。
解説が欲しい方は↓
次は関数の中身を説明していきます。
というのは......。
まぁ、その名の通り、
「シーンを読み込む」
と言う機能です。
( ) の中にはString型で名前を指定すれば、
その名前のシーンがロードされます。
しかし、ここで注意して欲しいのが、
「Biuld Settings」の「Scenes In Build」の中に
読み込みたいシーンが入っていないといけません。
何の話か分からなければ気軽にコメント下さい!
......ここでは、そのくらいですかね?
では、その括弧の中の↑これ。
これは、
ドット( . )ごとに区切って考えると、
「シーンマネージャーの.
現在のシーンを取得().
そのシーンの名前」
って感じです。
これが括弧の中に入っているので、
「現在のシーンのリロード」
が出来る訳です!
スポンサードリンク
using UnityEngine.SceneManagement; // ※← 必須!
private void () {
SceneManager.LoadScene(SceneManager.GetActiveScene().name); // 現在シーンのリロード
}
解説
まず、一行目の
using UnityEngine.SceneManagement;
ですが、
これはUnityに
「こういう機能を使いますよ」
という呼びかけです。
これを行っていることで、
関連した機能が使えるようになります。
ここでは、「シーンマネージャー」という機能を
使用するようにしているので、
様々なシーンの管理がスクリプトから出来るようになります。
private void () {
}
↑これは関数ですね。
まぁ、これは分かると思うので吹っ飛ばします。
解説が欲しい方は↓
次は関数の中身を説明していきます。
SceneManager.LoadScene();
というのは......。
まぁ、その名の通り、
「シーンを読み込む」
と言う機能です。
( ) の中にはString型で名前を指定すれば、
その名前のシーンがロードされます。
しかし、ここで注意して欲しいのが、
「Biuld Settings」の「Scenes In Build」の中に
読み込みたいシーンが入っていないといけません。
何の話か分からなければ気軽にコメント下さい!
......ここでは、そのくらいですかね?
SceneManager.GetActiveScene().name
では、その括弧の中の↑これ。
これは、
ドット( . )ごとに区切って考えると、
「シーンマネージャーの.
現在のシーンを取得().
そのシーンの名前」
って感じです。
これが括弧の中に入っているので、
「現在のシーンのリロード」
が出来る訳です!
スポンサードリンク
2018年10月27日
【Unity】FPS(フレームレート)を取得する
FPSとは
FPSとは、
「Frame Per Second」
の頭文字から取ったもので、
「一秒間に呼び出すフレーム数」
のことです。
分かり易いのが、
「パラパラ漫画」
とかですかね?
1秒間に100枚パラパラ出来るのか、
1秒間に1000枚パラパラ出来るのか
で「表示の細かさ」が変わってきます。
後者の方が動きを上手く捉えられそうじゃないですか?
まぁ、FPSについてはそんなものです。
「FPS自体」については、
こちらで丁寧に解説している方がいるので
参考にどうぞ。
『フレームレート(FPS)って何?どのくらいの値にすればいいの?』
続きを読む
2018年01月20日
【unity】倍数を使ってみたい
今回は、パソコンが使えない
状態ですがちょっと思い付いた事を
やってみたいと思います。
今回やってみたいのが、
倍数を使うという事です!
どこかで、倍数使う機会があると思うんですよ。
たぶん。恐らく。
という訳でやっていきます。
(もっとちゃんと調べれば、
専用の関数とか出てきてくれるのでは
なかろうか……。)
スクリプト
//関数
void Update () {
for (int i = 0; i < Mathf.Infinity; i++) {
//倍数にしたい数を掛ける
//ここではサンプルとして5の倍数にしてみる
var _i = i * 5;
//_iをコンソールにプリントアウト
print(_i);
}
}
このサンプルをそのまま
使うのであれば、「_i」が5の倍数に
なっているはずです。
さり気なく「for」使っちゃってますが、
使い方が分からなければググるか、
また記事を書くと思いますので
そちらをご覧下さいー。
あとは、これを応用すればいけます!
たぶん!
ではでは!
スポンサードリンク
2017年09月13日
【Unity5】Mathf.Lerp()で値を徐々に変える
この関数を使う機会があったので
メモとして記事に残します。
これで、a から b に向けて t の割合で変わる、
という処理をします。
増えようが減ろうが、
取り敢えず b に向けて a が
変わっていきます。
HPバーが徐々に変化していく、
といった時などに使えそうですね。
[例]
Slider型の変数を宣言しています。
その_sliderのvalue、
つまり_sliderの値ですね。
その値を徐々に
50にしていってます。
_sliderの値が0だろうが49だろうが、
500だろうが1000だろうが
取り敢えず50へと値が変化していきます。
なぜ、_sliderの値(_slider.value)が
二つあるのか?というと、
感覚的には
だけだと
「_slider.valueを50にしていくのは
分かったけど、何に反映するの?」
みたいな感じになるんですね。
ので、_slider.valueに
計算した値を入れてやる事で、
値が変わるんです!
以上、軽く解説でした!
まだまだ便利そうな
情報を記事にしていくので良かったら
覗いて行ってください!
では、また次回!
スポンサードリンク
メモとして記事に残します。
Mathf.Lerp(a, b, t)
これで、a から b に向けて t の割合で変わる、
という処理をします。
増えようが減ろうが、
取り敢えず b に向けて a が
変わっていきます。
HPバーが徐々に変化していく、
といった時などに使えそうですね。
[例]
using UnityEngine.UI;
public class Example : MonoBehaviour {
Slider _slider;
void Update () {
_slider.value = Mathf.Lerp(_slider.value, 50, Time.deltaTime);
}
}
Slider型の変数を宣言しています。
その_sliderのvalue、
つまり_sliderの値ですね。
その値を徐々に
50にしていってます。
_sliderの値が0だろうが49だろうが、
500だろうが1000だろうが
取り敢えず50へと値が変化していきます。
なぜ、_sliderの値(_slider.value)が
二つあるのか?というと、
感覚的には
Mathf.Lerp(_slider.value, 50, Time.deltaTime)
だけだと
「_slider.valueを50にしていくのは
分かったけど、何に反映するの?」
みたいな感じになるんですね。
ので、_slider.valueに
計算した値を入れてやる事で、
値が変わるんです!
以上、軽く解説でした!
まだまだ便利そうな
情報を記事にしていくので良かったら
覗いて行ってください!
では、また次回!
スポンサードリンク
2017年09月10日
【unity5 解説あり】 空のオブジェクトをスクリプトから作る
2017年08月28日
【unity5 三項演算子の使い方】ifから少し使いやすく?三項演算子の使い方
三項演算子って知ってますか?
使えるととても便利です。
僕の場合、「三項演算子の使い方」は
知っているんですが、
「三項演算子とは何か」を聞かれると
うーん…となってしまいます(笑)
数学とかで習いますかね…?
まぁ、それは置いといて。
三項演算子はどんな場合に使えるのか?
というと、三項演算子とは、if構文での
制御を一行にまとめたようなものです。
「条件」
「条件が成り立つ時の返り値」
「条件が成り立たない時の返り値」
これらが一行に詰まっています。
では、「返り値とは何か」を
説明します。
返り値とは、その名の通りで、
「返す値」ですね。
「関数が実行された」
「じゃあこれを返して代入しよう」
みたいな?
やっていった方が理解は
早いと思うのでやってみましょう!
まず、どの様に記述すれば良いのか
を見ていきましょう。
この様に、「?」や「:」で区切ります。
この一文は、「条件」によって変わる
値を返すことが目的です。
その為「return」が文頭に付いていますね。
何に値を返すのか?
それは三項演算子の使い方にも寄ります。
例文と一緒に見ていきましょう。
以上が例文となります。
見て分かる人は開発の再開、
見て分からない人は解説へゴー↓です。
まず、変数二つですね。
これはコメント化もしてある為
比較的分かりやすいかと思われます。
「isAlive」
型はbool型です。
生きていれば「true」が、
死んでいれば「false」が入るように
していきたいと思います。
「life」
その名の通り、「体力」です。
int型です。
floatでも良かったんですが、
intの方が扱いやすいのでintにしました。
この変数には予め100が入れてあります。
体力が100スタート、という事ですね。
次はUpdate関数です。
■isAlive = IsAlive();
こうありますね。
言葉に直すとしたら、
「isAliveには、IsAlive関数を代入」
くらいの意味でしょうか?
意味わかりませんね。
変数に、しかもbool型に関数を
代入するなんて。
それは一度置いておいて、
IsAlive関数を見に行きましょう。
ここに三項演算子が使われています。
まず、「return」ですね。
「値を返す」という意味です。
どこに返すのか?
そこで、さっきの一文が出てきます!
「isAlive = IsAlive()」←ここです!
ここに返ってきます。
それでまとめると、
「isAliveにはIsAlive関数の結果を代入する
↓
IsAlive()が分からないと代入出来ない
↓
関数の実行をしに行く
↓
関数内で『life』により、返す値を
trueとfalse間で変更
↓
returnで返す
↓
isAlive = IsAlive()に
値が返ってくる
↓
返ってきた値を『isAlive』変数に代入」
以上が一連の流れになります!
これで分かりますでしょうか?
相変わらず説明がゴミなので
理解出来ない方もいっしゃるかと……。
その時はごめんなさい…!
精進します。
それでは、また。ノシ
スポンサードリンク
使えるととても便利です。
僕の場合、「三項演算子の使い方」は
知っているんですが、
「三項演算子とは何か」を聞かれると
うーん…となってしまいます(笑)
数学とかで習いますかね…?
まぁ、それは置いといて。
三項演算子はどんな場合に使えるのか?
というと、三項演算子とは、if構文での
制御を一行にまとめたようなものです。
「条件」
「条件が成り立つ時の返り値」
「条件が成り立たない時の返り値」
これらが一行に詰まっています。
では、「返り値とは何か」を
説明します。
返り値とは、その名の通りで、
「返す値」ですね。
「関数が実行された」
「じゃあこれを返して代入しよう」
みたいな?
やっていった方が理解は
早いと思うのでやってみましょう!
三項演算子の使い方
まず、どの様に記述すれば良いのか
を見ていきましょう。
return 条件 ? 条件が成り立つ時に返す値 : 条件が成り立たない時に返す値;
この様に、「?」や「:」で区切ります。
この一文は、「条件」によって変わる
値を返すことが目的です。
その為「return」が文頭に付いていますね。
何に値を返すのか?
それは三項演算子の使い方にも寄ります。
例文と一緒に見ていきましょう。
//変数
//↓生きているかの判定に使いたい
bool isAlive;
//使う体力
//予め100を代入しておく
int life = 100;
void Update () {
isAlive = IsAlive();
}
public bool IsAlive () {
return life > 0 ? true : false;
}
以上が例文となります。
見て分かる人は開発の再開、
見て分からない人は解説へゴー↓です。
解説
まず、変数二つですね。
これはコメント化もしてある為
比較的分かりやすいかと思われます。
「isAlive」
型はbool型です。
生きていれば「true」が、
死んでいれば「false」が入るように
していきたいと思います。
「life」
その名の通り、「体力」です。
int型です。
floatでも良かったんですが、
intの方が扱いやすいのでintにしました。
この変数には予め100が入れてあります。
体力が100スタート、という事ですね。
次はUpdate関数です。
■isAlive = IsAlive();
こうありますね。
言葉に直すとしたら、
「isAliveには、IsAlive関数を代入」
くらいの意味でしょうか?
意味わかりませんね。
変数に、しかもbool型に関数を
代入するなんて。
それは一度置いておいて、
IsAlive関数を見に行きましょう。
public bool IsAlive () {
return life > 0 ? true : false;
}
ここに三項演算子が使われています。
まず、「return」ですね。
「値を返す」という意味です。
どこに返すのか?
そこで、さっきの一文が出てきます!
「isAlive = IsAlive()」←ここです!
ここに返ってきます。
それでまとめると、
「isAliveにはIsAlive関数の結果を代入する
↓
IsAlive()が分からないと代入出来ない
↓
関数の実行をしに行く
↓
関数内で『life』により、返す値を
trueとfalse間で変更
↓
returnで返す
↓
isAlive = IsAlive()に
値が返ってくる
↓
返ってきた値を『isAlive』変数に代入」
以上が一連の流れになります!
これで分かりますでしょうか?
相変わらず説明がゴミなので
理解出来ない方もいっしゃるかと……。
その時はごめんなさい…!
精進します。
それでは、また。ノシ
スポンサードリンク