入力機能の実装1
InputSystem設定
基本的にはUnity公式のyoutubeチャンネルで配信していた内容に従う。
Input System再入門 - Unityステーション - YouTube
Projectフォルダ内にInputsystemフォルダを作りInputActionファイルを作成。
InputActionファイル設定
Player
- Move : LeftStick , WASD , Arrow
キャラの移動用(横スクロール予定なので上下は必要ないかも)
- Jump : Button South , Space
ジャンプ用
- Attack : Button East , F(Fキーから変えたほうがよい?) , Mouth Left
攻撃用
- Grab : Button West , G , Mouth Right
ものをつかむよう(投げるボタンはどうする?持った後は置く?投げる?)
- Menu : Button North , Escape
UI
とりあえずデフォルトそのまま
InputSystemを受け取るコンポーネント
簡易的にボタンの判定と方向キーの入力を取得
操作するオブジェクトには、以下のソースを継承したスクリプトを張り付けるのがいい?
using UnityEngine; using UnityEngine.InputSystem; namespace Sandbox { public class InputComponent : MonoBehaviour { [SerializeField] bool _inputActive; public bool InputActive { get { return _inputActive; } set { _inputActive = value; } } PlayerInputAction _playerInputAction; [SerializeField] Vector2 inputMove; public Vector2 InputMove { get { return inputMove; } } [SerializeField] bool _isJumpPressed; public bool IsJumpPressed { get { return _isJumpPressed; } } [SerializeField] bool _isAttackPressed; public bool IsAttackPressed { get { return _isAttackPressed; } } [SerializeField] bool _isGrabPressed; public bool IsGrabPressed { get { return _isGrabPressed; } } [SerializeField] bool _isMenuPressed; public bool IsMenuPressed { get { return _isMenuPressed; } } protected virtual void Awake() { _playerInputAction = new PlayerInputAction(); _playerInputAction.Enable(); _playerInputAction.Player.Jump.performed += OnJump; _playerInputAction.Player.Jump.canceled += OnJump; _playerInputAction.Player.Attack.performed += OnAttack; _playerInputAction.Player.Attack.canceled += OnAttack; _playerInputAction.Player.Grab.performed += OnGrab; _playerInputAction.Player.Grab.canceled += OnGrab; _playerInputAction.Player.Menu.performed += OnMenu; _playerInputAction.Player.Menu.canceled += OnMenu; } protected virtual void Update() { //inputMove = _playerInputAction.Player.Move.ReadValue<Vector2>(); } protected virtual void FixedUpdate() { inputMove = _playerInputAction.Player.Move.ReadValue<Vector2>(); } protected virtual void OnAttack(InputAction.CallbackContext obj) { _isAttackPressed = obj.ReadValueAsButton(); } protected virtual void OnJump(InputAction.CallbackContext obj) { _isJumpPressed = obj.ReadValueAsButton(); } protected virtual void OnGrab(InputAction.CallbackContext obj) { _isGrabPressed = obj.ReadValueAsButton(); } protected virtual void OnMenu(InputAction.CallbackContext obj) { _isMenuPressed = obj.ReadValueAsButton(); } private void OnDisable() { _playerInputAction.Disable(); } private void OnDestroy() { _playerInputAction.Dispose(); } } }
Unity環境準備5(UI環境準備)
UI環境の設定
以下サイトでの掲載記事を参照
開発初期に暇を持て余しているUnityエンジニアができる42のTips後編 - 渋谷ほととぎす通信
UIEnviromentとUICanvasInitializerを作成
-UIScaleMode : Scale Wtih Screen Size
-Reference Resolution : 1920 * 1080
-ScreenMatchMode : Expandに設定
Unity環境準備4(アセットのインストール)
Unity公式アセット
- Cinematic Studio
Chinemachineをダウンロード
外部アセット
- DoTween
- EasySave
- Editor Console Pro
必要に応じて後日追加
Unity環境準備3(フォルダ構成)
フォルダ構成
基本的にここを参照する
暇なUnityエンジニアがやるべき42のTips前編 - 渋谷ほととぎす通信
Moduleは何を格納することを想定されているか分からない。
OutGameはUIと置き換えた。
各フォルダはAssemblyで分割する
Unity環境準備2(プロジェクト設定)
プロジェクト設定
- プロジェクト名
GensokyoExplorer
最初にやったこと
-PlasticSCM
ブランチなどもできるほうで構築。
プラスティックSCMのブランチエクスプローラーでいろいろ設定できそう
今はまだ詳しい操作方法は調べない