Latest Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Unity3Dメモ4

Unity Game Development Essentialを読んで、メモったことを公開していきます。
注:一切まとめてません。これを元に情報をまとめて別サイトで公開してくださるのは大歓迎。
  C#を使うことを基本にして書いてます。適宜読み替えてください。


・RigidBodyのIsKinematicをONにすると、他のオブジェクトには物理的影響を与えるが、
 他のオブジェクトからは物理的影響をうけないオブジェクトになる。

・RigidBodyのIntrpolateパラメータをONにすると、オブジェクトの動きを滑らかにする。

IgnoreCollision(Collider collider1, Collider collider2)を記述すると、
 collider1とcollider2間の衝突判定を無効にできる。

・Game ObjectをCharactorControllerに対する障害物として使用する場合、
 Colliderのみ付加すればよい(RigidBodyを付加する必要はない)


・emptyのGameObjectに発射スクリプトを組み込めば、見た目とは無関係に発射位置を
 調整することができる。

Input.GetButtonUp("Fire1")は、InputManagerの"Fire1"に割り当てられたボタンが
 離された瞬間のみtrueになる。

・transform.rootは、そのScriptが所属するGame Objectの最上位の親オブジェクトの
 Transformの参照。

・transform.parentは、そのScriptが所属するGame Objectの一つ上の親オブジェクトの
 Transformの参照。


・AudioSourceは、スピーカーの役割を持つ。
 AudioSourceを持つGame Objectに所属するScriptは、Audio Clipをいくらでも使って
 音を鳴らすことができる。

Unity3Dメモ3

Unity Game Development Essentialを読んで、メモったことを公開していきます。
注:一切まとめてません。これを元に情報をまとめて別サイトで公開してくださるのは大歓迎。
  C#を使うことを基本にして書いてます。適宜読み替えてください。


・GUITextureの作り方
 Projectパネルでテクスチャーを選択した後、
 メニューからGameObject | Create Other | GUI Texture
 を実行すると、選択したテクスチャーでGUITextuerが作られる。

・GUITextureと同じGame Objectに所属するScriptでは、
 GUITextureにguiTexture.でアクセスできる。


・Start()メソッドは、Sceneが開始するときに一度だけ呼ばれる。

・Destroy(Object obj, float delay = 0.0f)は、
 指定したObjectを破棄する。delayに数値を指定すると、delay秒待ってから破棄される。

・Start()メソッドの中に、Destroyメソッドを記述してdelayを指定しておけば、
 出現後delay秒経過すると消滅するオブジェクトが作成できる。


・Prefabを、Scriptからインスタンス化したい場合の流れ
 1.インスタンス化したいGame Objectを作成する。
 2.作成したGame ObjectをPrefabにする。
   (ProjectパネルでPrefab作成、Game ObjectをPrefabにドラッグ&ドロップ)
 3.元のGame Objectを削除する。
 4.インスタンス化を行うスクリプトを作成し、Game Objectに追加する。
   (スクリプトの変数宣言でpublic GameObject obj;等としてインスタンス化する
    Game ObjectをInspectorから設定できるようにして、作成したPrefabを設定する。
    また、インスタンス化を行う箇所に
    Instantiate(Object object, Vector3 position,Quaternion rotation)
    を記述する。)

・インスタンス化されたGame Objectのnameは、"Prefab名(Clone)"になる

Unity3Dメモ2

Unity Game Development Essentialを読んで、メモったことを公開していきます。
注:一切まとめてません。これを元に情報をまとめて別サイトで公開してくださるのは大歓迎。
  C#を使うことを基本にして書いてます。適宜読み替えてください。


・ScriptをInspectorパネルから見ると、最初の変数が必ず「Script」となっている。
 この変数を別のScriptに変えることで、Scriptを削除(右クリック→Remove Component)
 せずにScriptを変更できる。このとき、変更元と変更先のScriptが同じ変数を持っていれば、
 その変数の値は保持される。

・Scriptを作成しても、HierarchyパネルにあるGame Objectに付加しないとアクティブにならない

・変数をstaticで宣言すると(static float aaaなど)、クラス名.変数名でどのScriptからも
 アクセスできる。


・ローカル座標をグローバル座標に変換するには、
 transform.TransformDirection(Vector3 position)
 を使用する。

・GetComponent(typeof(コンポーネント名))を使うと、
 スクリプトが所属しているGame Objectが持つコンポーネントにアクセスできる。

・CharactorController.Moveは、collisionFlagsを返す。
 ※ 他のColliderと違って、上面・側面・下面いずれに当たったかを判別できる。
  ColliderFlags.None、ColliderFlags.Above、ColliderFlags.Sides、ColliderFlags.Below
  例) if(collisionFlags & CollisionFlags.Below != 0){


・Ray Castingは、銃弾の当たり判定などに使用される。
 線分と、Colliderの衝突判定を行う。Colliderとは違い、当たっても相互作用は働かない。
 Physics.RayCast(Vector3 pos, Vector3 forward, RayCastHit hit, float length)
  posは、線分の開始位置。forwardは、線分の向き。lengthは、線分の長さ。
  hitは、衝突判定の結果(RayCast側でセット。呼び出すときはnullでよい)

・Colliderを、Mesh Filter(=ポリゴンモデル)を持つGame Objectに追加すると、
 自動でモデルの形に合ったColliderを作成してくれる。

・OnColliderControllerHit(ControllerColliderHit hit)は、
 CharacterControllerがColliderと衝突したときに呼ばれる。

・OnTriggerEnter(Collider collisionInfo)は、
 ColliderがtriggerモードのColliderと衝突したときに呼ばれる。

・OnCollisionEnter(Collision collision)は、
 triggerモードでないCollider同士が衝突したときに呼ばれる。


・他のGameObjectを参照するときは、FindWithTagの方がFindより速い。

Unity3Dメモ1

Unity Game Development Essentialを読んで、メモったことを公開していきます。
注:一切まとめてません。これを元に情報をまとめて別サイトで公開してくださるのは大歓迎。


・各パネルの上で、スペースバーを押すとそのパネルが最大化される。


・Directional Lightは、主に太陽光に使う。
 Point Lightは、主に室内光や炎、放電などに使う。
 Spot Lightは、主にスポットライトに使う。


・Audio ClipのAudio Channelsをmonoにすると、
 Audio Listenerとの距離次第で音量が変わるモノラル音源になる(主に効果音に使用)。
 stereoにすると、音量が不変のステレオ音源になる(主にBGMに使用)。

・Audio Clipの音楽フォーマットは、wav、mp3、aiff、oggが使用可能。


・ScriptがGame Objectに追加されたときに、自動で特定のComponentを追加させたい場合
 (JavaScriptの場合)
  @script RequireComponent(追加するComponent名)
    をスクリプトの末尾に追加。
 (C#の場合)
  [RequireComponent(typeof(追加するComponent名))]
    をスクリプトの末尾に追加。


・HierarchyパネルでPrefab(から作成されたGame Object)を選択したときに
 Inspectorパネルの上部に表示される3つのボタンの意味
 ・Select:Projectパネルにあるこのオブジェクトの元になったPrefabをハイライトする
 ・Revert:設定をPrefabの初期値に戻す
 ・Apply:設定の変更をPrefabに反映する

スクリプトメモ1

Destroy(gameObject)
ゲームオブジェクトを削除する。

transform.Translate(new Vector3(x, y, z))
x、y、zで指定された座標分、ゲームオブジェクトの位置を移動する。

毎フレーム移動する場合は、
transform.Translate(new Vector3(x, y, z) * Time.deltaTime)
とすると、スピードを一定に保って移動できる。
(x、y、zに指定した座標は1秒間の移動量になる。)

Appendix

プロフィール

ヒズ

Author:ヒズ
FC2ブログへようこそ!

最新コメント

最新トラックバック

月別アーカイブ

検索フォーム

ブロとも申請フォーム

この人とブロともになる

QRコード

QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。