Unityメモ

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に減算を行う。
第一引数はよくわからね。

参考:Camearaでターゲットの周りを、ターゲットを見ながら回転 Unity - 万年素人からGeekへの道

PhotoSphereとSkybox

  1. PhotoSphereの画像をぶちぬく
  2. UnityのAssetsに画像を入れる
  3. Assetsの画像を指定し、Texture Typeを「Reflection」、Mappingを「Cylindrical」に
  4. Assetsでコンテキストメニューを出し、create->Material
  5. Materialに分かりやすい名前をつける
  6. Shader->RenderFX->Skybox Cubed
  7. CubemapにPhotoSphereの画像をドロップ
  8. 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にすると表示がなされる。


参考:ハマケン100%開発: Unity: GameObjectの非表示2つの方法と削除

GameObjectを半透明?にする

  1. Materialに画像を設定
  2. 画像のshaderをtransparent diffuseに変更

他のクラスを参照し、メソッドを使用したい(C#)

var hoge = GameObject.Find("hoge").GetComponent<クラス名>();

当然ながらpublicなメソッドやプロパティのみアクセス可能。


参考:[Unity]他のスクリプトを参照する | CHO DESIGN LAB

AssetBundle

作成
  1. Assets/Editorフォルダを作成する
  2. BuildPipeline-BuildAssetBundle - Unity スクリプトリファレンスにあるソースをAssets/Editorに置く
  3. ビルド対象となるGameObjectをAssetsフォルダから選択状態にする
  4. メニューでAssets>Build AssetBundle From Selection - Track dependenciesを実行

3Dを読み込ませ、アニメーションを付与するとエラーが発生する

3Dファイルを設定して「Inspectorタブ > Rig > AnimationType」を「Legacy」に設定する。



参考:Unity 4でのアニメーションの警告 - 万年素人からGeekへの道



動画再生時に音を鳴らしたい

動画単体では音は鳴らないようです。

  1. AudioSourceをオブジェクトに追加する
  2. audio.clip = 動画テクスチャ.audioClipをする
  3. 動画再生と同時にaudio.Play()を実行する