LoginSignup
2
1

More than 3 years have passed since last update.

平面ゲームに1つのコントローラーで、相対移動によるカーソルを用意する方法

Last updated at Posted at 2019-04-28

はじめに

この記事はGWアドベントカレンダーという企画の「VCIアドベントカレンダー GW ver」2日目の記事です。

GWアドベントカレンダー全体についてはこちら↓
10連休向けアドベントカレンダーシステムを作った【個人開発】

VCIアドカレはこちら↓
VCI(Virtual Cast Interactive) アドベントカレンダー GW ver

今日は2日目で、平面ゲームに1つのコントローラーで、相対移動によるカーソルを用意する方法について説明します。

TL;DR

まず何を書こうとしているのかわかりにくいので、動画で示します。
画面上に、操作中のフィールドに右手に持ってる黄色い四角を動かしている間出てくる黒丸について注目してください。
こちらが、フィールドが90度画面が動いても黄色い四角が下に動けば下に右に動けば右に動くようになっています。
FourLinksVCIDemo.gif

移動量計算

移動量=「フィールドのデフォルトからの逆回転量」*「コントローラを掴んだ場所からの移動量」

Movement.lua
Movement = Quaternion.Inverse(Field.GetLocalRotation()) * (Controller.GetLocalPosition() - GrabStart.LocalPosition())

黒丸に移動量を反映

黒丸の位置=初期位置+移動量

locate.lua
RelativeMarker.SetLocalPosition(Const.CTRL_POSITION_CORRECTION + Vector3.__new(Movement.x,Movement.y,0))

あとでもっと詳細に書く

2
1
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
1