攻撃力の強化②(オプションのコントロール)



Optionのコントロール
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OptionController : MonoBehaviour
{
public GameObject[] options;
private bool moveOK = false;
private Vector3 playerPos;
// リスト(Playerの位置情報の取得)
private List<Vector3> playerPosRecord = new List<Vector3>();
void Start()
{
// スタート時に40個の位置情報を保存
playerPos = transform.position;
for (int i = 0; i < 40; i++)
{
playerPosRecord.Add(playerPos);
}
}
// プレーヤーが動いている間は、プレーヤーの位置まで移動
// プレーヤーが止まれば、停止
void Update()
{
// Playerの位置情報を常に取得
playerPos = transform.position;
// Playerが動いているか否かの判定は入力の絶対値で行う(テクニック)
// 絶対値の取得
float h = Mathf.Abs(Input.GetAxis("Horizontal"));
float v = Mathf.Abs(Input.GetAxis("Vertical"));
if (h > 0.5f || v > 0.5f)
{
moveOK = true; // 動いている判定
}
else
{
moveOK = false; // 停止判定
}
if(moveOK)
{
// リストのインデックス0番に新しい位置データを挿入する。
playerPosRecord.Insert(0, playerPos);
// 一番古い位置データを削除する。
playerPosRecord.RemoveAt(playerPosRecord.Count - 1);
}
// 各Optionの位置データの更新
options[0].transform.position = playerPosRecord[9];
options[1].transform.position = playerPosRecord[19];
options[2].transform.position = playerPosRecord[29];
options[3].transform.position = playerPosRecord[39];
}
}


【2021版】Danmaku(基礎/全55回)
他のコースを見る


Optionのコントロール
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OptionController : MonoBehaviour
{
public GameObject[] options;
private bool moveOK = false;
private Vector3 playerPos;
// リスト(Playerの位置情報の取得)
private List<Vector3> playerPosRecord = new List<Vector3>();
void Start()
{
// スタート時に40個の位置情報を保存
playerPos = transform.position;
for (int i = 0; i < 40; i++)
{
playerPosRecord.Add(playerPos);
}
}
// プレーヤーが動いている間は、プレーヤーの位置まで移動
// プレーヤーが止まれば、停止
void Update()
{
// Playerの位置情報を常に取得
playerPos = transform.position;
// Playerが動いているか否かの判定は入力の絶対値で行う(テクニック)
// 絶対値の取得
float h = Mathf.Abs(Input.GetAxis("Horizontal"));
float v = Mathf.Abs(Input.GetAxis("Vertical"));
if (h > 0.5f || v > 0.5f)
{
moveOK = true; // 動いている判定
}
else
{
moveOK = false; // 停止判定
}
if(moveOK)
{
// リストのインデックス0番に新しい位置データを挿入する。
playerPosRecord.Insert(0, playerPos);
// 一番古い位置データを削除する。
playerPosRecord.RemoveAt(playerPosRecord.Count - 1);
}
// 各Optionの位置データの更新
options[0].transform.position = playerPosRecord[9];
options[1].transform.position = playerPosRecord[19];
options[2].transform.position = playerPosRecord[29];
options[3].transform.position = playerPosRecord[39];
}
}


攻撃力の強化②(オプションのコントロール)