Unity1week(お題:つながる)に参加しつつあります、四日目
気分転換に、たまりにたまった牛乳パックを切り裂いてやりました。
むっふっふ。neoacoです。
昨日までの遅々たる進捗に、今日こそ頑張るぞ!と思っていたのですが、
パーティクルのあれやこれやを調べているうちにものすごく時間が過ぎており、
今日もそんなに進捗がない……いやそんなことはない、なんていったってパーティクルが出来上がったんだ、これは素晴らしい進捗だと思うんだよ!
そういうわけで、今日の作業を振り返ろうと思います。
1.爆発エフェクトをつくりたーい
爆発はロマン!
……とはいえ、公式assetの爆発エフェクトは自分の絵とのクオリティ乖離が激しいので、
もうすこし自分のクオリティに見合ったエフェクトを作らねばなりませぬ。
今日はほとんどパーティクルの調べごとに費やしたけど、結局今のところは作っただけとそんなに変わらない状況。からあげ画像を丸く抜いてフチをぼかして、シェーダーに設定。
Particl/standard surfaceに設定して、Rendaring ModeをAdditiveに設定するといい感じです。
爆発に当たったらプレイヤーがダメージをうけたり、霊魂の爆発が連鎖したりしてほしいんだけど、
Colliderを使うとぶつかって止まるし、Triggerは思った感じの挙動じゃないし、
あたり判定はちょっと保留。明日いいアイディアが浮かぶといいなぁ。
このパーティクルは、昨日のenemyの子としてプレハブに設定しておきます。
2.つかまえた後は持ち歩きたい
体当たりで霊魂に爆弾を仕込むというお手軽モードに決定したわけですが、
「つかまえて」という文言に従って、爆発するまでは持ち歩けるようにしたいですよね。
でも、本体にはアニメーションがついてるからポジションを変えてもついてこないし、
えーっとえーっとえーっと
配置の時に使う入れ物ごとプレイヤーにもたせればいいのか!
いや~こういうことにすぐ気付くなんてすごいな~、僕はなんてすごいんだろう~~~
(誰もほめてくれないので自分でほめるスタイル)
(PlayerCtrlに追記) void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.tag == "enemy") { collision.gameObject.SendMessage("GetSet"); // 親をプレイヤーへ変更する collision.transform.root.parent = this.transform; GameObject enemyP = collision.transform.parent.Find("/Player/enemyP").gameObject; enemyP.transform.localPosition = new Vector3(0.16f,1.44f,0); // 投げる // ここはうまくいってない if (Input.GetKeyDown(KeyCode.L)) { // 左右 float checkLR = this.gameObject.transform.localScale.x; Rigidbody2D enemyRb = enemyP.GetComponent<Rigidbody2D>(); enemyRb.simulated = true; enemyRb.AddForce(new Vector2(checkLR * 150f,150f)); } } }
3.うまくいってない
おっかしいな~ これで投げられると思ったんだけど……。
プレイヤーが体当たりしたときには
- アニメーションの変更
- enemyの親ごとPlayerの子オブジェクトにする
を行っているんだけど、Lキーが効く(RigidbodyのSimuratedがONになる)のは一度アニメーションが終わってからなんだよね……
適当に力を入力しているからか、ビューンって飛んで行っちゃうし、これはあきらめてアニメーションにするしかないのかな~
私が楽をしようと思って実装すると大抵うまくいかないので、
まぁそういうことなんだろうなと思っております。
アニメーションつくってウンヌンのあたりはまた明日に。
ん~、アニメーションかな、それともTimelineかな……Timeline思った感じじゃないからやだな……でもアニメーションではない気がしてきた……
間に合わない気がしてきたので、この後は背景を描いたりします。
ンヒー