facebook twitter hatena line email

「Unity/3d/FPS」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==FPS視点カメラ== #ヒエラルキーからCreateEmptyして新規オブジェクトを作成しオブジェクト名を"Player"とする #MainCameraのオブジェ...」)
(相違点なし)

2020年6月10日 (水) 03:42時点における版

FPS視点カメラ

  1. ヒエラルキーからCreateEmptyして新規オブジェクトを作成しオブジェクト名を"Player"とする
  2. MainCameraのオブジェクト名を"FSPCamera"へ変更
  3. Playerの下にFSPCameraを移動
  4. 以下csを作成してFPSCameraへドラッグ

FPSCamera.cs

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

namespace FPS
{
    public class FPSCamera : MonoBehaviour
    {
        private Transform _camTransform;

        //マウス操作の始点
        private Vector3 _startMousePos;

        //カメラ回転の始点情報
        private Vector3 _presentCamRotation;

        void Start()
        {
            _camTransform = this.gameObject.transform;
        }

        void Update()
        {
            //カメラの回転 マウス
            CameraRotationMouseControl();
        }

        //カメラの回転 マウス
        private void CameraRotationMouseControl()
        {
            if (Input.GetMouseButtonDown(0))
            {
                _startMousePos = Input.mousePosition;
                _presentCamRotation.x = _camTransform.transform.eulerAngles.x;
                _presentCamRotation.y = _camTransform.transform.eulerAngles.y;
            }

            if (Input.GetMouseButton(0))
            {
                //(移動開始座標 - マウスの現在座標) / 解像度 で正規化
                float x = (_startMousePos.x - Input.mousePosition.x) / Screen.width;
                float y = (_startMousePos.y - Input.mousePosition.y) / Screen.height;

                //回転開始角度 + マウスの変化量 * 90
                float eulerX = _presentCamRotation.x + y * 90.0f;
                float eulerY = _presentCamRotation.y + x * 90.0f;

                _camTransform.rotation = Quaternion.Euler(eulerX, eulerY, 0);
            }
        }
    }
}

参考:https://qiita.com/Nekomasu/items/0a6aaf1f595cf05fbd0d

参考:https://xr-hub.com/archives/7782

銃オブジェクト追加

  1. AssetStoreで銃(例:"FPS-AKM"で出てくる)を追加
  2. 銃をヒエラルキーに追加し、オブジェクト名を"Gun"に変更する
  3. FPSCameraの子にGunを移動

参考:https://xr-hub.com/archives/7782