LoginSignup
2
0

More than 1 year has passed since last update.

【完走目指す】初心者が25日で強くなる Advent Calendar 2022
24日目です。昔作ったゲームがどっか行ったので、代わりにライツアウトを作ります

クリスマス

クリスマスなのに、クリスマスネタが思い浮かばなかったので、メダル落としを作ります。

制作

メダルを作ります
スクリーンショット_20221225_121500.png
メダルはcylinderでできます。
image.png

次に、メダルを落とす枠組みを用意します。
image.png
メダルが落ちないようにします。
画像では見えていないと思いますが、前面に透明のcubeを設置してあります。これでメダルの動きを見ることができるとともに、メダルが脱線してしまうのを防いでいます。
では、いったんメダルを落として確認します
スクリーンショット_20221225_122617.png
メダルが元の位置から動きませんでした。
どうやら壁に挟まってるっぽいです。

capsule collider

メダルの当たり判定にはこのCapsule Colliderを使っています。
Cubeとかのcolliderは、cube自体の大きさを変えた時にいい感じに調整されます。
しかし、これの場合は
image.png
なんかおかしいことになるようです。
なので、手動で直しましょう。
mesh colliderに変えて、convexにチェックを入れます。
最終的に
スクリーンショット_20221225_124117.png

こうなりました
ちゃんと地面でメダルが止まりました。

障害物

障害物を作ります
例えば、棒を置いておけばメダルが当たった時にいい感じに左右のどちらかに移動してくれます。よくあるやつです。
メダルと同じ要領で作りました
image.png
メダルと同じ大きさにすると、途中でメダルが引っかかって止まることがあるのでメダルの大きさを倍にしました。
これに加えて、メダルがワープするものも作ってみようと思います。
まずは画像を用意します
ワープ.png

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class Warp : MonoBehaviour
{
    public GameObject Medal;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
    public void OnCollisionEnter(Collision collision)
    { if (collision.gameObject.tag == "Medal")
        {
            Medal.transform.position = new Vector3(0.2f, 21, 0);
        }
      
}
}

前にやった衝突を使います。
メダルのタグが付いているオブジェクトが衝突したら、メダルの位置が変わります。
image.png
衝突すると、上に移動します。

メダルを落とす

今の状態では同じ場所から落として同じ位置に移動しているので、同じ結果が得られます。
しかし、それだとよくないので任意でメダルの出す位置とかを変えられるようにします。
とりあえず、今日はここまで。

今日のまとめ

衝突検知の仕方の復習をした。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0