Unityでジャンクゲームを作っているっぽい

会社帰りにGPD PocketにUnity入れてゲーム作ってます

【2DのTest】14_攻撃方向をキー入力で変更したい

8方向に攻撃したい

回転用のスクリプトplayer_shot_roll.csはShot_RollPointにスクリプトをアッタチ

f:id:mekatamatama:20210410155526p:plain

player_shot_roll.csを新規で作る

キー入力で8方向を指定する古き良き操作方法
回転に関して参考にしたサイト
tama-lab.net
スクリプトの全体はこんな感じ

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class player_shot_roll : MonoBehaviour{
	void Update(){
		//キー入力判定
		if (Input.GetKey(KeyCode.UpArrow)) {
			transform.rotation = Quaternion.Euler(0, 0, 90f); 
		}
		if (Input.GetKey(KeyCode.DownArrow)) {
			transform.rotation = Quaternion.Euler(0, 0, -90f); 
		}
		if (Input.GetKey(KeyCode.RightArrow)) {
			transform.rotation = Quaternion.Euler(0, 0, 0); 
		}
		if (Input.GetKey(KeyCode.LeftArrow)) {
			transform.rotation = Quaternion.Euler(0, 0, 180f); 
		}
		if (Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.RightArrow)) {
			transform.rotation = Quaternion.Euler(0, 0, 45f); 
		}
		if (Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.LeftArrow)) {
			transform.rotation = Quaternion.Euler(0, 0, 135f); 
		}
		if (Input.GetKey(KeyCode.DownArrow) && Input.GetKey(KeyCode.RightArrow)) {
			transform.rotation = Quaternion.Euler(0, 0, -45f); 
		}
		if (Input.GetKey(KeyCode.DownArrow) && Input.GetKey(KeyCode.LeftArrow)) {
			transform.rotation = Quaternion.Euler(0, 0, -135f); 
		}
	}
}

矢印キーの判定

//上キー
Input.GetKey(KeyCode.UpArrow)
//下キー
(Input.GetKey(KeyCode.DownArrow)
//右きー
(Input.GetKey(KeyCode.RightArrow)
//左キー
Input.GetKey(KeyCode.LeftArrow

斜め方向は方向を組み合わせて判定

//右上
Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.RightArrow)
//左上
Input.GetKey(KeyCode.UpArrow) && Input.GetKey(KeyCode.LeftArrow)
//右下
Input.GetKey(KeyCode.DownArrow) && Input.GetKey(KeyCode.RightArrow)
//左下
Input.GetKey(KeyCode.DownArrow) && Input.GetKey(KeyCode.LeftArrow)

角度は直で指定

z軸を90度回転
transform.rotation = Quaternion.Euler(0, 0, 90f);

攻撃できた!!

イイ感じ
f:id:mekatamatama:20210410160332g:plain:h300

次は弾の当たり判定と寿命を設定して削除していきたい