投稿者「mynote」のアーカイブ

UnityのUIでフォーカスを移したい場合はSetSelectedGameObject

UnityのUIを使っていて、フォーカスを変えたい場合はEventSystem.SetSelectedGameObjectを使ってみると良いみたいです。

使い方

EventSystem.current.SetSelectedGameObject(gameObject);

Canvasを2重に表示していて、後ろ側になっているCanvasのボタンにフォーカスがある場合など、一見不可解な現象が起こる場合もあるので、注意して使ってみてください。

リンク

Unity – Scripting API: EventSystems.EventSystem.SetSelectedGameObject
https://docs.unity3d.com/2018.2/Documentation/ScriptReference/EventSystems.EventSystem.SetSelectedGameObject.html

VirtualBoxのゲストとホストの日時にオフセットを設定する方法

VirtualBoxのゲストとホストで日時(タイマー)をずらしたい場合は、TimeOffsetでオフセット値を設定できます。

コマンドラインで設定

設定は次のコマンドを実行します。

$ VBoxManage modifyvm "仮想マシンの名前" --biossystemtimeoffset <オフセット値>

仮想マシンの名前のところはオフセット値を追加したい仮想マシンの名前、オフセット値のところは設定したいオフセット値をミリ秒で設定します。

オフセット値は+/-どちらの方向にも設定できます。

例えば、仮想マシンをホストの1日後の時刻にしたい場合は

オフセット値: 86400000

1週間前にしたい場合は

オフセット値: -604800000

となります。

仮想マシンの.vboxを直接編集

コマンドラインからではなく、仮想マシンの設定ファイル.vboxを直接編集して設定する場合は<HARDWARE>タグの中に

<BIOS>
  <TimeOffset value="オフセット値"/>
</BIOS>

を追加します。

リンク

virtualbox – Change date and time in BIOS of virtual machine – Stack Overflow
https://stackoverflow.com/questions/17259805/change-date-and-time-in-bios-of-virtual-machine

error CS0260: Missing partial modifier

C#のpartialを使おうとしてCS0260エラーになる場合は全てのクラスにpartialキーワードが付いているか確認してみてください。

example.cs(0,0): error CS0260: Missing partial modifier on declaration of type 'Example'; another partial declaration of this type exists

エラーになるコード

// Example.cs
public class Example : MonoBehaviour
{
  // 省略
}
// Example2.cs
public partial class Example : MonoBehaviour
{
  // 省略
}

修正したコード

// Example.cs
public partial class Example : MonoBehaviour
{
  // 省略
}
// Example2.cs
public partial class Example : MonoBehaviour
{
  // 省略
}

リンク

Compiler Error CS0260 | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs0260