20201018のUnityに関する記事は5件です。

[Unity]Unity Recorderをインストールしよう(2020)

今現在、AssetStoreから消えていてインストールできませんでした。

PackageManagerにあるのでそこからインストールします

Window -> Package Manager -> 右上の歯車から設定画面を開きます

そこの Enable Preview Packages にチェック。これで開発途中のパッケージがでてくるようになります。

2.png

Unity Recorderを探してインストール

3.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

VSCodeにてUniRx、UniTaskの補完が効かない時の対処

VSCodeにて、UniTaskとUniRxの補完が効かず、半日ぐらいハマって補完が効くようにできたので参考になったページなど。

◇ monoをアンインストールしてインストールすると補完できるようになる
https://unity-yuji.xyz/editor-visual-studio-code-complement/

◇ VSCodeのSettingsで「Omnisharp: Use Global Mono」という項目を「always」
https://unity-yuji.xyz/vscode-unity-omnisharp-netframework-mono/

◇ Visual Studio Code Editor を最新版にUpdate
https://unity-yuji.xyz/unity2019-2-later-vscode-visual-studio-code-dont-open/

◇ プロジェクトファイル、*.csprojが壊れてる時には生成し直す。
https://qiita.com/honmaaax/items/da39d7b854c39c3ea110


あと、私の場合は、UniRxとUniTaskがパッケージとプラグインの両方に入っていたので、Pluginの方を消してからPackagesの方を再インストールしました。
(Unityのフォルダ)/asset/Plugins ← ここのUniRx、UniTaskを消した。
(Unityのフォルダ)/Packages ← ここのUniRx、UniTaskを再インストール。

(実行環境用に、Buildした時に動くもののエラーが出てたので気がついた。)


環境はUnity 2020.1.9f1でMacにて

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Unity】MRTK導入してQuest2のハンドトラッキングでボタンを押す

MRTK-Quest

というツイートを見ました。

Quest2が発売されたということもあるので
MRTK×OculusQuest2×ハンドトラッキング
ボタンを押すところまでやってみようと思います。

バージョン情報

Unity 2019.4.8f1
Oculus Integration Version 20.1
Microsoft Mixed Reality Toolkit v2.5.0
MRTK-Quest v1.1.0

準備

まずはOculus IntegrationをAssetStoreからインポートします。

次にMicrosoft Mixed Reality Toolkitから必要なunitypackageを
ダウンロードしてプロジェクトにインポートします。

今回は、
Microsoft.MixedReality.Toolkit.Unity.Foundation
Microsoft.MixedReality.Toolkit.Unity.Tools
の2つを下記リンクからダウンロードします。

【リンク】:MixedRealityToolkit-Unity

インポートしたら初期設定画面が出ると思うので
Applyを押します。いろいろ必要な設定をやってくれます。
MRTKsetup.png

次にQuest対応のMRTK-Questを導入します。
下記からMRTK-Quest_v110_Core.unitypackage
をダウンロードしてインポートします。

【リンク】:MRTK-Quest


Profileの設定

最初にいろいろな設定が利用可能となるProfileを使える状態にします。

下記画像のように
Mixed Reality Toolkit > Add to Scene and Configure...
を選択すればOKです。

MRTKAddConfig.png

次にMRTK-QuestのProfileを使えるように下記画像のように設定します。

MRTKProfileSet.png


稀にProfileの設定ができないことがあります。(インポートの順番とかバージョンの違いかも)

うまくいかなかったら
下記のサンプルプロジェクトをクローンして
Profileがまとめられたファイルをプロジェクトに丸ごとコピーすれば大丈夫でした。

【リンク】:MRTK-Quest-Sample

Profileがまとめられたファイルのディレクトリは下記です。
MRTK-Quest-Sample\Assets\MRTK.ThirdParty\MRTK-Quest\Profiles


今回はやりませんが、ここまでいろいろダウンロードしたものは
manifest.jsonに自分で書き込めば勝手にインポートしてくれるらしいです。

【参考リンク】:MRTK 2.5 を Unity Package Manager を使って取り込む

【参考リンク】:Oculus Quest 2でMRTK使って豆腐と戯れる最小手順


ポインター、ゲイズ、テレポートを削除

下記はMRTK-Questのデモです。

83885080-dcde6100-a713-11ea-88e2-46883402cfe8.gif

引用元:MRTK-Quest

ただし、これは機能をてんこ盛りにしたバージョンのデモです。
今回は人差し指でボタンを押せる機能だけに絞りたいと思います。

ポインター削除

まずはポインターです。
MixedRealityToolkitInput設定から
下記画像のように不要なポインター機能を削除してPokePointerだけの状態にします。

MRTK-PokePointer.PNG

ゲイズ削除

手の入力を検知するまでゲイズ(HMDの向きに照射されるポインター)が出ます。
これ正直なところどうやって消せばいいかいまいちわかりませんでした。
なのでオブジェクトを非アクティブにするというパワープレイで非表示にしました。

MRTK-CursorVisualOff.PNG

テレポート削除

MixedRealityToolkitTeleport設定からオフにできます。

MRTK-teleport.PNG

ボタンを配置、常にカメラの前に表示する

ボタンはMixed Reality Toolkit > Toolboxから
下記画像のように選択できます。
MRTK-ToolBox.png

Prefabを直接Hierarchyに置いてもOKです。

表示位置を調整してデバッグするのが面倒なので
常にカメラの前に表示します。下記にまとめたScriptを使用します。
【参考リンク】:【Unity(C#)】Lerp、Slerpを使った減速表現

MRTK-Qiita1.gif

デバッグ

ここまででもう下記動画のようにボタンは押せるようになっているはずです。

Editor上でも確認できます。下記にまとめてます。
【参考リンク】:【Unity】Oculus Link使ってEditor上でデバッグ

実機での確認は(ビルドの設定は省いて)1つ設定しなければならない箇所があります。
下記画像の通り、Hands Onlyにする必要があります。

設定用ConfigのディレクトリはAsset/oculus/OculusProjectConfigです。

MRTK-HandOnly.png

ボタンに処理を追加する

ボタンを押すとキューブの表示が切り替わるデモです。

MRTK-Qiita2.gif

コード

using Microsoft.MixedReality.Toolkit.UI;
using UnityEngine;

/// <summary>
/// ボタン押下時のイベントを管理
/// 適当なオブジェクトにアタッチ
/// </summary>
public class ButtonEventManager : MonoBehaviour
{
    /// <summary>
    /// ボタン
    /// </summary>
    [SerializeField] private Interactable _interactableButton;

    [SerializeField] private GameObject _cube;

    void Start()
    {
        _interactableButton.OnClick.AddListener(() =>
        {
            //ボタン押下時行いたい処理
            _cube.SetActive(!_cube.activeInHierarchy);
        });
    }
}

MRTKのボタンにInteractableというコンポーネントがついているので
その中のリスナーにイベント登録しています。

おわりに

VRで物理的なUIを一から自分で作るのは面倒なので
これからもお世話になろうと思います。

参考リンク

Oculus Quest 2でMRTK使って豆腐と戯れる最小手順
手乗りちょまぎょアプリ開発で学ぶ MRTK 入門 (MRTK 2.5 対応)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[Unity] resource busy or lockedがでてきてPackageManagerがインストールできない

現象

Package ManagerでCinemachineをインストールしようとすると、以下のエラーメッセージが表示

Cannot perform upm operation: EBUSY: resource busy or locked, open '~~~'
[NotFound].See console for more details
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()

スクリーンショット 2020-10-18 134251.png

解決方法

Unity以外のアプリを全て閉じ、再インストール

エラーメッセージ的に、何かで影響するファイルが読み込み中の可能性が高いです。
自分は開発中だったため、VSCodeやVimで編集中にしたファイルがあったため閉じて再実行すれば解決しました。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Buttonが反応しない時の対処法

Interactableをチェックしたら反応するようになりました

スクリーンショット 2020-10-18 11.55.56.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む