mieki256's diary



2014/02/17(月) [n年前の日記]

#1 [unity] C#の継承について勉強中

Unity上で、雑魚敵の種類を増やしたいなと。しかし、敵種類を増やすごとに、アタリ判定部分に種類を追加していくのは馬鹿馬鹿しいなと。ここは、敵を管理する元クラスを作って、それを継承して雑魚敵クラスを作ったほうがいいのだろうなと。

てなわけで、C#で継承ってどうやるのか勉強中。ググってあちこち斜め読みして試してみて、変だなー、警告が出るなー、と悩んでたけど。 てな感じで良かったらしい、とメモ。

元クラスのメソッドを呼びたい場合は、base.Hoge(); と入れておくらしいけど、これはまだ試してなかったり。

このあたりの簡単な実験ができる、C# の環境って無いのかな。Ruby の irb とか、Python の IDLE(だったっけ?) みたいな…。そんなもの、あるんだろうか…。

#2 [unity] Unity 2Dを使った横スクロールアクションゲームっぽいソレがある程度出来上がってきた

大崎一番太郎のレンダリング画像を利用して、Unity 2Dの勉強、というか実験をしてたのだけど。とりあえず、現時点ではこんな感じに。2面しか作ってないけど。

ScreenShot1

ScreenShot2

_実行サンプル (Unity Web Player が必要) (2014/06/28 に差し替え)(2016/09/04,2017/03/19 置き場所変更)

「宝箱を全部取ってゴールを目指せ!」みたいなよくあるソレです。操作方法は以下の通り。 _Unity Web Player がインストールされていれば、ブラウザ上で遊べます。

せっかくだから、現時点のプロジェクトフォルダを、zipにして置いときます。Unity も C# も初心者なので、ソースはグチャグチャだけど、それでも何かの参考になればと。

_test15_unity2d_first_20140628.zip (2014/06/28に差し替え)(2016/09/04,2017/03/19 置き場所変更)

zipに入ってる画像は、自作した画像なので好きに使ってください。プロトタイプを作る時の仮画像ぐらいにはなるんじゃないのかなと。Public Domain / CC0 ってことで。大崎一番太郎のスプライトシートも、CC0で公開されてるモデルデータを元にしてレンダリングした画像なので、自由に使えるはず。

スクリプトソースは、あちこちの解説記事のソレを、写経したり、そのままコピペしたりしてるので、ライセンスがどうなるのかよくわかりません…。とりあえず、元記事・元ネタがあるソースには、コメントで元記事URLも書いておきましたので、そちらを眺めてみていただければと。

画像も一応貼っておいたり。 :

使った画像も一部貼っておきます。

spritesheet2_32col.png
enemy_robo0.png
treasure0.png

画像だけ、zipでまとめて置いときます。Public Domain / CC0 ってことで。

_test15_unity2d_first_image.zip (5.6MB)

2014/06/28追記。 :

コメント欄で、「プロジェクトフォルダをDLしたけど、キャラが地面の下に落ちていく」と報告していただけました。ありがとうございます。感謝します。

自分の環境でも調べてみましたが、当時使ってた Unity 4.3 と、現在の Unity 4.5 では、Box Collider 2D という、2Dアタリを判定する機能の仕様が変わっていて、そのせいで地面をすり抜けてしまうようです。( _2014/06/28の日記 に、状況をもう少し詳しく書いておきました。)

とりあえず、 _Unity 4.5 でも動くように修正した版 をアップロードしておきましたので、再度DLしていただければ…と思います。

また、「実行すると GWkが無いとエラーが出る」件ですが、タイトル画面のシーン、Assets\title.unity から実行していただければエラーは出ませんので、あまり気にしないでいただければ…と。
  • GWk は、グローバル変数代わりのオブジェクト。プレイヤーのライフ数等が入ってます。
  • タイトル画面に GWk を置いておいて、stage1.unity、stage2.unity では、タイトル画面からずっと生き残り続けてるはずの GWk を参照して処理をしています。
  • stage1.unity や stage2.unity では、GWk を参照してエラーが出たら開発作業中と判断して、その場で GWk を発生させて、その後の処理を続ける、という流れになってます。この時に、「GWkが見つからない」とエラーが出ます。タイトル画面から順に実行されている時は、GWk が存在してるのでエラーは出ません。
このあたり、もっと上手い方法があるんじゃないかと思いますが…。

2017/03/19追記。 :

DropboxのPublicフォルダが死んだのでファイルを置き直し。

2017/03/19現在、Firefox、GoogleChrome の最新版では、Unity Web Player がそもそも動かないので、この日記で公開してるソレも動かなくなってますな…。Windows10 + IE11 なら動きましたが…。

この記事へのツッコミ

Re: Unity 2Dを使った横スクロールアクションゲームっぽいソレがある程度出来上がってきた by kozzila    2014/06/27 01:21
Unityを勉強をはじめたばかりの初心者です。
参考にさせて頂こうとプロジェクトをダウンロードさせて頂いたのですが、キャラクターが地面の下に落ちて行ってしまうのと、
GWk is nothing
UnityEngine.Debug:LogError(Object)
SingletonMonoBehaviour`1:get_Instance() (at Assets/Scripts/SingletonMonoBehaviour.cs:26)
Player:LoadLifeValue() (at Assets/Scripts/Player.cs:329)
Player:Start() (at Assets/Scripts/Player.cs:94)
というエラーが出ています。
これはどのように対処すれば良いのでしょうか?
Re: Unity 2Dを使った横スクロールアクションゲームっぽいソレがある程度出来上がってきた by mieki256    2014/06/28 09:39
> キャラクターが地面の下に落ちて行ってしまう

報告ありがとうございます。感謝します。
記事に追記、かつ、修正版をアップしておきましたので
そちらを読んでいただければと思います。

以上、1 日分です。

過去ログ表示

Prev - 2014/02 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project