Hierarchyに配置された名前からGameObjectを特定する
GameObject.Find("HierarchyのGameObject名");
オブジェクトのrotationを変更したい
transform.rotation.y
で足し算引き算すればうまくいくだろうと思ったらそうでもなかった。どうやらメソッドを使わないとrotationの書き換えは上手くいかないらしい。
transform.RotateAround(Vector3.zero, Vector3.down, 0);
0の部分がy軸と一致する。第二引数にVector3.upを指定するとyに加算、Vector3.downを指定するとyに減算を行う。
第一引数はよくわからね。
PhotoSphereとSkybox
- PhotoSphereの画像をぶちぬく
- UnityのAssetsに画像を入れる
- Assetsの画像を指定し、Texture Typeを「Reflection」、Mappingを「Cylindrical」に
- Assetsでコンテキストメニューを出し、create->Material
- Materialに分かりやすい名前をつける
- Shader->RenderFX->Skybox Cubed
- CubemapにPhotoSphereの画像をドロップ
- Skyboxに作成したMaterialを配置
参考:Google Code Archive - Long-term storage for Google Code Project Hosting.
カメラAでは見えてカメラBでは見えないGameObjectを作成したい
GameObjectの設定
HierarchyでGameObjectを選択 > Inspector > Layer
Layerで好きなタグ名を選択する。もし独自の名前のタグが欲しい場合はUser Layer 8以降に適当な名前をつけてあげる(「User Layer X」の右端にテキストボックスがあるのでそこで名前をつける。最初名前の付け方が分からなかった…)
カメラの設定
Hierarchyでカメラを選択 > Inspector > Culling Maskで見えたいタグ名にチェックを入れる。
ここで指定したタグに含まれないGameObjectは表示されないようになる。
GameObject名の取得
gameObject.name
jsの場合
何かを非表示にしたい
「何か」により違う。
//3DなGameObjectの場合 gameObject.renderer.enabled = false; //GUI Textの場合 gameObject.guiText.enabled = false; //GUI Textureの場合 gameObject.guiTexture.enabled = false;
なお、trueにすると表示がなされる。
GameObjectを半透明?にする
- Materialに画像を設定
- 画像のshaderをtransparent diffuseに変更
他のクラスを参照し、メソッドを使用したい(C#)
var hoge = GameObject.Find("hoge").GetComponent<クラス名>();
当然ながらpublicなメソッドやプロパティのみアクセス可能。
AssetBundle
作成
- Assets/Editorフォルダを作成する
- BuildPipeline-BuildAssetBundle - Unity スクリプトリファレンスにあるソースをAssets/Editorに置く
- ビルド対象となるGameObjectをAssetsフォルダから選択状態にする
- メニューでAssets>Build AssetBundle From Selection - Track dependenciesを実行
使用
WWW.LoadFromCacheOrDownloadを使うのがお勧めらしい。
http://docs-jp.unity3d.com/Documentation/Manual/DownloadingAssetBundles.html
Asset bundleなどの、Unity3d基礎知識 - SSSSLIDE
3Dを読み込ませ、アニメーションを付与するとエラーが発生する
3Dファイルを設定して「Inspectorタブ > Rig > AnimationType」を「Legacy」に設定する。
参考:Unity 4でのアニメーションの警告 - 万年素人からGeekへの道
動画再生時に音を鳴らしたい
動画単体では音は鳴らないようです。
- AudioSourceをオブジェクトに追加する
- audio.clip = 動画テクスチャ.audioClipをする
- 動画再生と同時にaudio.Play()を実行する