iOSとAndroidでリリースされた2D空間シューティングゲーム(Chicken Invadersのようなものを想像してみてください)があります。私は今、WebGLに移植しようとしています。そのためには、マウスを使って動きを実装しようとしています。以前はUnityの組み込みキャラクタコントローラをモバイルプラットフォーム上に実装することで成功していましたが、コードベースを小さくしてプラットフォーム固有の実装を可能な限り少なくするために、WebGLビルドでこれを使い続けたいと思います。キャラクターコントローラーを使用してキャラクターをフォローする
したがって、船をマウスカーソルに追従させるにはどうすればよいですか?
PS: 私はtouchControl.Move()でtouch.deltaPositionを使用して、船が指の動きに従うようにしました。
EDIT:現在の方法
入力マネージャ
public Vector2 GetInput() {
switch(type) {
case PlatformType.Computer:
if (Input.GetButtonDown("Jump") || Input.GetAxis("Fire") != 0f) {
thisDelegate.InputDidReceiveFireCommand();
}
if (!Input.mousePresent) {
temp.x = Input.GetAxis("Horizontal");
temp.y = Input.GetAxis("Vertical");
} else {
if (Input.GetAxis("Mouse X") != 0f || Input.GetAxis("Mouse Y") != 0f) {
temp.x = Input.GetAxis("Mouse X");
temp.y = Input.GetAxis("Mouse Y");
} else {
temp.x = Input.GetAxis("Horizontal");
temp.y = Input.GetAxis("Vertical");
}
}
}
PlayerController
void HandleInput()
{
mvm = InputController.GetInput();
if (GetComponent<InputManager>().type == InputManager.PlatformType.Mobile) {
mvm *= Time.deltaTime * initialVeloc/10;
} else {
if (mvm != Vector3.zero) {
mvm -= transform.position;
}
}
}
void Update() {
characterController.Move((Vector2)mvm);
}
現在の方法は、画面の中央に次の文字ジッタになります。
あなたの現在の状態、少なくともあなたが文字を移動するために使用している方法を追加してください。 –
@IgnacioAlorreが編集されました。 –