2017.05.25
【Unity】スマブラっぽくダブルクリックで床を抜ける処理を作ってみた
ダブルクリックで床を抜ける
今回は、スマブラっぽい感じの床抜け処理を書いてみました。
必要最低限の処理だけなので、ご利用は拡張的に!
※使用しているUnityのバージョンは5.5.2f1です。
[Unity_317×90]
スクリプト
2Dで作ってあるので、使用したコンポーネントはCircleCollider2DとRigidbody2Dです。
コンポーネントやOnTriggerExit2Dを3D用に書き換えれば3Dでもいけます。
using UnityEngine; public class DoubleClickThroughFloor : MonoBehaviour { CircleCollider2D myCol; // クリックした時間保存用の変数 double clickTimeAt; // ダブルクリックと判定するクリック間隔 double asDoubleClickTime = 0.25; void Start() { myCol = GetComponent<CircleCollider2D>(); // 現在時間で初期化 clickTimeAt = Time.time; } void Update () { // 床抜け中ではない時に、スペースキーを押したら if (!myCol.isTrigger && Input.GetKeyDown(KeyCode.Space)) { // キーを押した間隔を時間から算出 double interval = Time.time - clickTimeAt; // 間隔がダブルクリック判定時間以下であれば if (interval < asDoubleClickTime) { // 通り抜けON myCol.isTrigger = true; } // クリックした時間を保存 clickTimeAt = Time.time; } } // 通過が終了したらisTriggerをOFFにする void OnTriggerExit2D(Collider2D collision) { myCol.isTrigger = false; } }
仕掛けとしては、ダブルクリックとして認識したら、isTriggerをONにして通過開始。
OnTriggerExit2Dで通過終了を検知したら、isTriggerをOFFにする。です。
ご参考までに。
Unityの新着記事
▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発