STYLYには細かい仕様が多すぎる
ちょっと覚えきれなくなってきたので、気づいたもの、思い出したものからメモしていきます。
シーン編
シーンにはデフォルトで透明のPlaneが居る
- VRのTeleport移動の為に設定していると思われる。
- 想定した区画より外に行けたり、下に移動する体験を作ろうとすると邪魔になる
- DestroyGameObject "Plane" で消せる
- STYLY公式見解としては非推奨らしい
Publish編
WebEditor上のPublish画面ではコピペができない
Prefab制作/アップロード編
アップロードしたPrefabはGUIDで管理される
- 普通に空間作るだけなら問題ないが、PlayMakerの時に大きな障害となるのだ。。。
アップロードしたPrefabには自動的にColliderが張られる
- VRのTeleport移動の為に設定していると思われる。
- インタラクションを考えるときや、GameObjectが移動するような時に邪魔になったりする
- シーンをアップロードした場合はColliderが張られない
- STYLY公式ではCollider不要の場合シーンのアップロードでの対応を推奨している
- ColliderはPrefab自体についている
- 例えば、PrefabのChild要素を移動した場合、Colliderだけその場に残る事故が起きる
- 逆に言えば、初めに適当なところに配置しておいて、あとで移動したらColliderを実質消したことになる
- 例外としてTextMeshにはつかないっぽい。
-
これがよくわからない不具合だった
-
- Collider必要ない場合、PlayMakerで消せる
C#スクリプトは使えない
- STYLYの仕組み上仕方ない
- STYLYアプリに組み込まれているC#スクリプトなら使える
- PlayMaker
- iTween
- (本当はほかにもあるんじゃない?)
PlayMaker編
アップロードしたPrefabはFindGameObjectで取得できない
- アップロードしたPrefabはGUIDにリネームされてるので、GUIDでFindGameObjectしないと取得できない。
-
- PrefabをUploadすると、Prefabの名前はGUIDになる
- STYLY上でPrefabの本来の名前はどこかに保存されてるのだろう。
- STYLYのHierarchyをUnity風に表すと、Assetを取りまとめるObjectの下にGUIDのObjectが居るイメージ。
- Child以下はリネームされていないので、Prefab自体は捨ててChild以下を利用するようにすると安定。
- 尚、SetNameでPrefabの名前をGUIDから好きな名前に変えると、Loadできないシーンが出来上がる
グローバル変数は使えない
- ここに書いてあった。
GetRootの結果がUnity上とSTYLY上で変わる
- Hierarchyが多分、こんな感じになってる
- Assetroot
- Asset1_GUID
- Asset2_GUID
- Assetroot
MainCameraの取得方法がいくつかある
- ここで試した
- GetMainCameraで取れるにゃとれる
- Transform普通に取得できる
- FSMからCameraを強制移動できないことがある
- 環境ごとにMainCameraの名前が規定されてるのでそれで取れる
- Transformがおかしい
- FSMからCameraを強制移動できる
-
最近の仕様変更で、VR系はすべて [VRTK]_VIVEに統合された
- スタンドアロンとPCVRの判断方法が一つ失われた。。。
- やり方がダメなだけかもしれないが、安定したやり方を確立したい
型変換は明示的にする必要がある
- STYLY上だとplaymakerの型変換(e.g. float->string、int->string)は明示的にAction使わないと動かない
- Unity上では動くんだけどなぁ。
PCVRの時、コントローラにColliderが張られてない
- 掴めないし殴れない、触れない。
- 必要なら自分でPlayMakerでCollider張る必要がある。