Jumping!をマイナーアップデートしました

シェアする

  • このエントリーをはてなブックマークに追加

こんにちは。

昨日、Unity1週間ゲームジャムに参加し、感想や実装に関する記事を書きました。

本日ちょこっと変更したのでその内容を書いておきます。

ゲームはこちら↓から。FireFox推奨です。

https://unityroom.com/games/jumping

Now Loading画面

月曜日が街にやってきたのでNow Loading画面を作成しました(これが言いたかっただけ)。

以下の記事を参考にしました。

UnityでNowLoading画面を作成する|Unityを使った3Dゲームの作り方(かめくめ)

UnityでNowLoading画面|かさたな日記

【Unity5】非同期ロードでローディング画面を実装する。|ねこバタ会議

Loading用のシーンを作らず、Startシーンに真っ黒なImageとスライダーとテキストを被せることで実現しました。

スライダーのつまみを消すとゲージが作れるというのは便利ですね。

SceneManager.LoadSceneAsync("Stage1")を用いています。

progressが0.9までしか行かないというのは事実らしく、while(async.progress<0.9f){}でプログレスバーの更新を行いました。

次のシーンをフェードインさせる(真っ黒の画面をフェードアウトさせる)のはやってません。シーン開始からタイマーが動くので(3、2、1、みたいなのを表示すると良さそうですね)。

ただ、実装はしましたが、思った通りに動いてくれなかったです。

一気に進んでほぼ満タンになってからしばらく待たされます。

これは仕方ないのですかね。

落下するパネルが回転しないようにした

落下するパネルにアタッチしているFallBlock.csの落下部分で、

rigidbody.constraints = RigidbodyConstraints.FreezeAll;

としていたところを、

rigidbody.constraints

= RigidbodyConstraints.FreezeAll ^ RigidbodyConstraints.FreezePositionY;

としました。

^というのはビット単位のXORを表す記号です。

Rigidbody.Constraintsの各設定項目は、positionのX,Y,ZとrotationのX,Y,Zがそれぞれ2進数の1桁に対応しています。positionXが2、Yが4、Zが8、rotationXが16、Yが32、Zが64、という形です(1と128は使わないみたいです)。

2進数で00101100は、positionのY,ZとrotationのYを固定する、というような具合です(最上・最下のbitは無視します)。

FreezeAllは01111110で、「positionY以外を固定」するためにはFreezeAllのpositionYに対応するビット(3桁目)を0にしてやればいいので、上の計算で得られます。

ビットORを表す | を用いれば、Rotation | PositionX | PositionZ というような形でも同じものが得られます。

復活時のプレイヤーの向きを奥向きに

プレイヤーの向きは、プレイヤーのtransform.forwardに、GetAxisで取得した入力から計算される速度ベクトルと同じ方向(Vector3(h,0,v).normalized)を代入することで操作していますが、復活時にforwardを(0,0,1)にするようにしました。

以上が更新内容です。

また時間があれば大規模アップデートをしたいです。できるといいなあ。

スポンサーリンク
レクタングル(大)
レクタングル(大)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする