Unity勇者の冒険の書

Unityで学んだことや便利なものなど作ったら紹介します

【Unity勇者の奮闘記】電卓作った

エディタ拡張で電卓作りました!

 

f:id:LightGive:20151024123528p:plain

 
プログラムやってると電卓使うことあるんですがWindowsで電卓出すの面倒なので作りました!
 
式をボタンで入力して…

f:id:LightGive:20151024123604p:plain

 
=で計算できます

f:id:LightGive:20151024123638p:plain

 
四則演算しかないシンプルなやつですがどうぞ。
 
プログラムは結構ゴリゴリ書いたのでスマートではないのと、
キー入力は出来ないですが、一応できたので、どうぞ!
 
あれ...そういえば小数点って制御したっけ…

f:id:LightGive:20151024123711p:plain

 

f:id:LightGive:20151024123729p:plain

 
あっ…(汗)
 
あなたは何も見ていない、いいね?
 
ゲームも設計は大事だけど、それ以上にツール系って設計大事ですね('ω')
これからの課題は設計ですね...
 
とても暇で、修正してくれる方はプルリクエスト送ってくださいね
 
Git
 
ソースはこんな感じ

gist.github.com

 
参考にしたプログラムはこちら
では('ω')

【Unity勇者の奮闘記】マインスイーパ作った

皆さんUnityのゲーム制作は

順調ですかーー?
 
うん、あまり順調じゃない人もいるみたいですね。。
ゲーム作ってるとゲームやりたくなりませんか?
なんか...こう...ホッと一息できるような...
そう!
 
 
マインスイーパ』しかない!

f:id:LightGive:20151023113901p:plain

 
なんて言ったって、windowsのデフォルトのゲームに入ってるくらいだからやっぱりあれは中毒性ありますよねー!
 
 
でも、Unityで作ってもやる機会が無いですね...
 
そうだ、エディタ拡張でつくろう。
 
というわけで作りました。
一体何を作ってるんだ俺...
 
ちょっとハマった

f:id:LightGive:20151023143134p:plain

 
ソースはこちら。
 

gist.github.com

めっちゃ基本のマインスイーパアルゴリズム使いました!
 
これからもちょくちょく作って、上げますね
 
では!(^^)!
 
 

【Unity勇者の奮闘記】PaintEditor作った

更新遅れてすみませんでした!

最近エディタ拡張にはまってしまってブログの方更新してませんでした!

今度はペイントツール作りました!
ペイントツールって言っても機能としては
ペンツール・消しゴムツール・バケツツールだけで、
出力はPNGだけなんですけどね!

Unityで2Dのゲームを作ってるときに、僕の低スペックのPCだと
Unityとペイントツールと開くと大分重くなってしまうんですよね。
で、ドット絵しか描かないから作ってしまおうと思い、作りました!

完成品がこちら

f:id:LightGive:20150925132640p:plain

ひとつずつ説明していきます。

まず、メニューバーの「Tools」から、「DotPaintTool」から、「NewImage」
で新しく画像を作成します。

f:id:LightGive:20150925124104p:plain

・ImageName
ファイル名を指定します

・Width画像の幅を指定します(1~64)

・Height
画像の高さを指定します(1~64)


指定したら「Create」ボタンを押して、新しく作成します。

f:id:LightGive:20150925124841p:plain


・NewImage
今編集している画像を消して新しく作成します。

・DeleteAll
今編集している画像を消します。

f:id:LightGive:20150925125146p:plain

・NowColor
現在選択している色です。

・Color1~3
パレットです。右のSelectボタンを押すとその色が選択されます。

f:id:LightGive:20150925132144p:plain

・上の段
グリッド線の色を決められます。透明・黒・白があります
・下の段
ツールを決められます。ペンツール・消しゴムツール・バケツツールがあります。

GitHubに公開してます!
何か改善点などあればプルリクエストなどしてください!github.com

【Unity勇者の奮闘記】CharacterController2D作った 後編

rでは、使い方を説明します!

・準備段階
まず、このCharacterController2Dを使うには
3つのアニメーションを作ってください。

・立ち
・走り(歩き)
・ジャンプ

この3つです。
アニメーション素材が無い場合は
1枚絵をアニメーションクリップにしてください。

・立ち
f:id:LightGive:20150811141831g:plain

・走り(歩き)
f:id:LightGive:20150811141836g:plain

・ジャンプ
f:id:LightGive:20150811141833g:plain

出来ましたか?

そして、この3つを下のようにAnimatorに入れてください
それぞれのトランジション(矢印)はつけなくても大丈夫です

それと、それぞれのAnimationの名前を

・Idle
・Walk
・Jump

にしておくと色々と楽です

f:id:LightGive:20150811141828p:plain


この準備ができたら早速、キャラクターを作っていきます!

1.空のGameObjectを作成する

2.CharacterController2Dをつける

こんな感じのが出来たと思います
f:id:LightGive:20150811142233p:plain

試しにSpriteRendererのSpriteに立ち絵を入れてみましょう
この時点で大きさが大きかったりしたらScaleを変えたり、
Spriteの"Picxels Per Unit"の値を変えたりして、調節してください。

こんな感じ
f:id:LightGive:20150811142736p:plain

3.BoxColliderを調節する
キャラクターに合わせるようにして、調節してください。
Scaleは変えないでください

こんな感じ
f:id:LightGive:20150811142938p:plain

4.足と頭の当たり判定を調節する
キャラの頭と足の辺りに青い線がついていると思います。
これが立っているかの判定と頭をぶつけたかの判定になります。

ここで注意してほしいのが、
この線をコライダーの外側に置いてください。
外に置かないと、立っている判定にならずに、
ジャンプし続けてしまいます・・・(´・ω・`)

一応もう一度言っておきます
この線をコライダーの外側に置いてください。

言いましたからね?

この青い線を動かすのは、
CharacterController2Dの、CharaStatusの

・Head(頭の当たり判定の位置)
・Foot(足の当たり判定の位置)
・Width(当たり判定の横幅)

になります。

調節すると、こんな感じになると思います。
f:id:LightGive:20150811144101p:plain

5.色々と調節
Animatorがあると思うので、準備段階で作ったAnimatorを
入れておきましょう

いよいよCharacterController2Dを見ていきましょう
f:id:LightGive:20150811144547p:plain

・GroundLayer
キャラクターが立つ地面となるレイヤーを設定。
無い場合は作って下さい。

・CharaImageDir
キャラの画像の向きを指定しましょう。
右向きの画像ならRight、左向きならLeftを設定。

・AnimationName
準備段階で作ったAnimatorに入っている
立ち、歩き、ジャンプのアニメーションの名前を設定。
上で推奨したAnimationの名前なら変えなくて大丈夫です。

・CharaScale
キャラの大きさを変えた場合はここで設定してください。
変えずに1.0ならそのままで大丈夫です。

・CharaGravityScale
キャラクターの重力。

・CharaMoveSpeed
左右に動くスピード

・CharaJumpScale
ジャンプの高さ。

・CharaCeilingBouness
キャラの頭に当たった時の下に落ちる勢い

・IsInput
入力を自分で設定したい時はここを外して、他のスクリプト
もしくはCharacterController2Dに直接自分で書いてください。


変更後
f:id:LightGive:20150811151156p:plain

あ、プレイ中の色がキモチワルイとかそういうのはいいです('ω')

直接書く場合は、下のメソッドを呼べば、キャラが動きます

ジャンプ
Jump();


左右に動く
Move(float rightSpeed);


こんな感じで動くと思います
f:id:LightGive:20150811151109g:plain


皆さんのアクションゲーム作りに役立てたらなと思います!

他にもこういう機能が欲しいとか、こここうしたら?とかは、

GitHubでプルリクエストしたり、Twitterで貰えれば、

(やる気があれば)頑張って反映します

プルリクエストはこちらへ
github.com

lightgive.hatenadiary.jp




では('ω')ノ

【Unity勇者の奮闘記】CharacterController2D作った 前編

UnityのCharacterController2Dがあるのに
CharacterController2Dが無いのはおかしいだろ!

と調べてみたら、あったのですが
使いにくかったのと、求めてたのと違ったので
CharacterController2D作りました!

これでUnityでアクションゲームが簡単に作れる!(?)

長いですがどうぞ

gist.github.com

使い方は次にやります)^o^(


使い方はこちらlightgive.hatenadiary.jp

【Unity勇者の奮闘記】Github始めました

使い方が分からず、少し時間がかかってしまいましたが、
とうとうGithub始めることができましたー!

\ワー/

これから色んなソースコードを公開していくと思いますが、
色々と間違っているところや、改良したほうがいいよ!
ってところはプルリクエストしてもらえると有難いです。


「プルリクエストってなんぞ?」


と思われたそこのあなた!

プルリクエストってのは、他人のソースコードをコピーして、
そこに変更(改良)を加えて、
「あなたの公開しているソースコードに反映させてくださいよ」

的なことを頼むのがプルリクエストという感じだと思います!
(自分自身まだよくわかってない)^o^()

github.com

では!

【Unity勇者の奮闘記】C#のクラスの継承について その1 

ある程度、Unityを勉強していくと、

途中であるところにぶち当たります

それが、クラス設計

クラス設計に確実に必要となってくる

一つが、継承です。


継承って…なんぞ?って人、

UnityのC#でプログラムを書いたことのある人なら

必ず見たことがあり、お世話になっていると思います。


using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {

	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}


「いつもの」ですね。

もう見慣れてるかと思います。
そして継承がどこにあるかというと、、、、

: MonoBehaviour

ここです!
: このコロンが継承を表します。

C#では、クラス名の右側にコロンを挟んで継承元を書きます。

継承元のことを「基底クラス」または「スーパークラス」と言われ、
継承先のことを「派生クラス」または「サブクラス」と言います。

Unityでスクリプトを生成した時に既に : MonoBehaviourとあるのは、
Unityで使える便利な関数をそこにまとめてあるから
生成時に継承されるようになっている、ということです。

じゃあ、継承するのはどんな時?

たとえば、アクションゲームで、敵のクラスを作るとします。


にはいろんな種類があります。

・ザコ敵
・遠距離攻撃をする敵
・めっちゃ速い敵
・ボス

などなど。

しかし、どの敵にも

・HP
・攻撃力
・防御力
・移動速度

はあります。ここで、継承を使います。


継承の利点として、「同じコードを何度も書かずに済む」というものがあります。
「何度も同じ変数を宣言して、初期化して…」という手順を基底クラスに一回書くことで済みます。
これが継承の利点の一つです。


別に継承なんて使わなくてもプログラムできるよ!
継承無くても面白いゲーム作れるよ!
なんて人、いると思いますが、確かにそうです。
が、継承を使えばゴリゴリ書いていたプログラムが綺麗になりますよ!
なのでぜひつかってみませう。


次は使い方について説明します!
では(゚Д゚)ノ

次→
lightgive.hatenadiary.jp