ミライのおもちゃ箱

プログラミング・VR・ドローンとか

UnityAssetStore「Crane Simulator」の使い方と注意点など

f:id:sayadoki:20210721100351p:plain

UnityAssetStoreのCrane Simulatorを購入していじりはじめたので、使い方や注意点をメモとして残しておきます。

Crane Simulator | 3D 車両 | Unity Asset Store

 

使い方のメモを残す動機はアセットに使い方が書いていなかったからです。KeyControllerクラスの割り当てでどのように操作すればいいかはおおよそ理解できますが、名称と操作の方向が逆だったり、状態によって操作方法も変わったりと、コードを読まないとわからないところがありました)。トラックについてはまだ触っていないので、省いています。

 

ちなみに最新はv7のようで、そちらは操作方法の画像があるので、以下のメモは不要ですね(不覚)。

Crane Simulator v7 | 3D Land | Unity Asset Store

 

検証時の環境は以下の通りです。

OS:Windows 10
Crane Simulator:Version1.0(リリース日は2020年3月16日)
Unity:2020.3.8f1 Personal(Built-in Render Pipeline)

 

操作方法

操作方法は以下の通り(割り当ては変更できるためデフォルトの説明)です。

一般的な操作

マウスを動かす:視点の回転
G:マウスポインタ操作への切り替え(押している間)
Gを押したまま右下の建機かトラックのアイコンをクリック:建機かトラックのエンジンの始動/停止
Y:視点位置の切り替え

この節の以下はエンジン始動時

E:クラクション
Left Shift:ブレーキ
H:ヘッドライト
J:ハザードランプ
Q:走行から建機の操作への切り替え

建機の操作

この節の以下はこちらの条件を満たしているときに作動
  • エンジン始動時
  • 左下のUIのLaunchがD(エンジン始動時にQで変更)

キーボードの1+右クリック:前左のアウトリガを横に伸ばす
キーボードの2+右クリック:前右のアウトリガを横に伸ばす
キーボードの3+右クリック:後左のアウトリガを横に伸ばす
キーボードの4+右クリック:後右のアウトリガを横に伸ばす
キーボードの5+右クリック:前左のアウトリガを縦に伸ばす
キーボードの6+右クリック:前右のアウトリガを縦に伸ばす
キーボードの7+右クリック:後左のアウトリガを縦に伸ばす
キーボードの8+右クリック:後右のアウトリガを縦に伸ばす

キーボードの1+左クリック:前左のアウトリガを横に縮める
キーボードの2+左クリック:前右のアウトリガを横に縮める
キーボードの3+左クリック:後左のアウトリガを横に縮める
キーボードの4+左クリック:後右のアウトリガを横に縮める
キーボードの5+左クリック:前左のアウトリガを縦に縮める
キーボードの6+左クリック:前右のアウトリガを縦に縮める
キーボードの7+左クリック:後左のアウトリガを縦に縮める
キーボードの8+左クリック:後右のアウトリガを縦に縮める

この節の以下は追加の条件を満たしているときに作動
  • フック固定解除時(エンジン始動時、Launch Dの際にTabで解除)

D:右旋回
A:左旋回
S:ブームを下げる
W:ブームを上げる
Z+左クリック:押している間、ブームを縮める
Z+右クリック:押している間、ブームを伸ばす
X+左クリック:
X+右クリック:
Tab:フックの固定/固定解除(固定解除は旋回角度やブームの起伏、伸縮などが0のときのみ)
C:荷揚げ(フックの近くの吊れる位置に吊るための設定がされたオブジェクトがある場合、フックのアイコンが描画され、荷揚げ可能な状態になる)/荷下げ

 

注意点

荷揚げ時の大量のデバッグログ

フックでオブジェクトを吊ると、以下のようなログが大量に出力されます。

Can't add component 'LineRenderer' to PointCargoAttach because such a component is already added to the game object!
UnityEngine.GameObject:AddComponent<UnityEngine.LineRenderer> ()
Props:LineHook () (at Assets/Crane_Truck/Script/Props.cs:61)
Props:Update () (at Assets/Crane_Truck/Script/Props.cs:23)

 

これはUpdateの中の処理で毎回LineRendererをAddComponentしていることが原因のため、以下のようにPropsクラスに変数を追加して、

private LineRenderer lineHook;

LineHookメソッドの中で、lineHookの有無を確認するコードを追加します。
(ついでに以下のちょっとした警告で説明する内容の修正も加えています)

if (lineHook == null)
{
 lineHook = gameObject.AddComponent<LineRenderer>();
 lineHook.startWidth = 0.015f;
 lineHook.endWidth = 0.015f;
}

また、以下のように毎回pointHookに対してGetComponentして設定していた部分を

pointHook.GetComponent<LineRenderer>().・・・

以下のように書き換えます。

lineHook.・・・

最後に、LineHookOfメソッドを以下のように書き換えれば完了です。

public void LineHookOf()
{
 Destroy(lineHook);
}

 

ちょっとした警告

PropsクラスのLineHookメソッドの以下のコードで警告がでます。

pointHook.GetComponent<LineRenderer>().SetWidth(0.015f, 0.015f);

 

警告の内容は以下です。

Assets\Crane_Truck\Script\Props.cs(71,9): warning CS0618: 'LineRenderer.SetWidth(float, float)' is obsolete: 'Use startWidth, endWidth or widthCurve instead.'

 

こちらは警告で指示されているように以下のように書き換えると解消できます。

lineHook.startWidth = 0.015f;
lineHook.endWidth = 0.015f;