UnityではResourcesフォルダ内にデータを入れておくと、スクリプトからデータの読み出しが Resources.Load("dataname"); で行う事ができます。 リファレンスには、Resourcesフォルダは複数持つ事ができると書いてあります。 試しに以下のようなフォルダ構成にして、データを読み込むテストをしてみました。 それぞれのResourcesフォルダ内にあるBlockPrefab2とBlockPrefab3をインスタンス化するコード(C#)は以下のようになります。 Instantiate(Resources.Load("Prefabs/BlockPrefab2"),new Vector3(-50,10,10),Quaternion.identity); Instantiate(Resources.Load("Prefabs/BlockPrefab3"),new Ve
Unity の公式サンプル「Mecanim Example Scenes」を動画撮影しました。 Mecanim でどんな事が出来るかの参考なれば幸いです。 シーンファイル名とそのシーンがどんなサンプルかを以下に記述します。リンクをクリックすると該当のシーンファイルの所から再生が開始します。 Animator Controller Animator Controllerのサンプル。 動画へのリンク Crowd Simulation 生成(Instantiate)するキャラクターのアバターを動的に切り替え。 動画へのリンク Follow Example クマ達がPlayerに付いてくる。 動画へのリンク Generic Skeleton Example 自分でアプリを作成するときのスケルトン? 動画へのリンク Inverse Kinematics Example IKのサンプル。左のScene
In this article I will introduce the reader to Graphical User Interface (GUI) scripting in Unity. Unity has a very powerful GUI scripting Application Programming Interface (API). It allows you to quickly create simple menus and GUIs using scripts. Introduction Unity provides the ability to create GUI interfaces through the use of scripts. At the time of this writing, Unity does not provide a nativ
ホーム < ゲームつくろー! < Unity/カスタムエディタ編 カスタムエディタ編 その1 Inspectorが変わる! UnityのGameObjectにスクリプトをくっつけると、そのGameObjectが機能を持つようになります。そして、その機能を調節するパラメータがInspector上に表示されます。例えば、ワールドに球を沢山発生させるジェネレータを作るとしましょう。ObjectGeneratorというスクリプトに「freq」という発生頻度を調節するメンバ変数をpublicで作り、このスクリプトをGameObjectにくっつけると、Inspectorはこう表示されます: まぁ、もちろんこのFreqに何らかの値を与えればいいわけですが、このままだとどんな値でも入ってしまいます。頻度なのにマイナス値も入れられますし、とんでもなく大きな値も可能です。例えばこの数値が1秒間あたりに出現する
using UnityEngine; public class Test : MonoBehaviour { public float speed = 1; void Update () { transform.Rotate(0, speed, 0); } } コード1は Y 軸に回転し続ける単純なスクリプトです。フレームごとの回転量は public な float 型の speed フィールドで決定しています。このスクリプトを任意のゲームオブジェクトに追加すると、「Inspector」ウィンドウに実行結果のような入力ボックスが表示されます。 このフィールドは、フィールド初期化子によって 1 に設定されているため、初期状態では 1 という値が表示されます。「Inspector」ウィンドウに表示されるフィールドの値は、他のコンポーネント同様にリアルタイムです。ゲームの実行中でも常に最新のフィ
スクリプトが別のコンポーネントを呼び出す場合、ゲームオブジェクトに対象のコンポーネントが登録されていなければなりません。スクリプトの正常動作に別のコンポーネントを必要とする依存関係がある場合、RequireComponent 属性を用いると安全です。 スクリプトの実行に別のコンポーネントが必須の場合、GetComponent() メソッドでゲームオブジェクトに含まれるコンポーネントを取り出して対話することができますが、ゲームオブジェクトに必要なコンポーネントが含まれていない可能性があります。 コンポーネントとなるクラスは、UnityEngine.RequireComponent 属性で依存しているコンポーネントを宣言できます。コンポーネントが A が正しく動作するにはコンポーネント B を同じゲームオブジェクトに登録していなければならないという依存関係がある場合、コンポーネント A で、こ
プロポーションやリグの異なるキャラクタの差異をアバターで吸収しモーションミキシング、アニメーションレイヤー、トランジションをステートマシンを基準にして管理、状態遷移をデザイナーがUnity上に構築、アセットとして保存出来ます。今までステートマシンの構築はプログラマーの領域の仕事でしたが、それをユニティ上でデザイナーが行う事ができます アセットにintやfloat、bool、Direction等の制御用パラメータを持たせることができます 遷移によるアニメーションクリップと他のアニメーションクリップの間はトラジションとしてunityが自動的に補間する(コードを書かなくて良い) 複数のモーションをリグ単位で個別にマスキングしながらミキシングできる
How do i check if my player is grounded? Because its kind of annoying how my player can jump in mid air. This is the script im using, its in Java Script: var jumpSpeed: float = 8; function Update () { if (Input.GetKeyDown (KeyCode.Space)){ rigidbody.velocity.y = jumpSpeed; } } You could do a short Raycast in the down direction to check if the ground is there. “short” in this case means the distanc
スクリプトから、他のスクリプトを参照したくなることがよくあります。今回はそのような場合にどのように参照するかを簡単に説明します。 スクリプトとは そもそも制御用のスクリプトはどのような位置づけなのか。とても簡単で、「MonoBehaviour」を継承したクラスであるということです。詳しくは以下のページを参照してください。 [Unity]スクリプティングを始めるにあたって-継承- 上記のページの解説にあるとおり、MonoBehaviourはComponentクラスを継承した、コンポーネントであり、MonoBehaviourを継承した自作クラスもまたコンポーネントであるということです。つまり、オブジェクトに付加された指定したコンポーネント(スクリプト)を取得すれば自在にスクリプトを参照できるというわけです。 コンポーネントの取得方法 コンポーネントを取得するためには、Componentクラスに
2. Extending the Unity Editor まずはUnityのGUIを理解しよう (1/2) ・基本的にデバッグ用 毎フレーム1つ1つのコンポーネントについて判定・再描画が 行われるので重い。また使いこなすにはGUISkinなどの細かい 仕様を覚えなくてはならず面倒。 ・Viewport空間ではなくScreen空間に描画 スクリーンに対する絶対座標で描画されるので、画面解像度が 変わった時に破綻する。 ・フォントの問題 PC/Mac以外で日本語文字を表示しようとすると非常に面倒。 携帯機ではDynamicフォントが使えない。 2/30 3. Extending the Unity Editor まずはUnityのGUIを理解しよう (2/2) ・OnGUI()に表示と処理を一緒くたに書く ゲーム実行中に、ゲームオブジェクトの更新と描画が終わった タイミングでOnGUI()が
Awake インスタンスが生成されて場に出てくるとき(is being loaded)に実行される ほかのオブジェクトの初期化が完了したあとに実行されることが保証されるので、このタイミングでFindXXXなどの、ほかのオブジェクトへ働きかけるメソッドが有効になる がしかし、すべてのオブジェクトに対してAwakeが実行される順番は未定義なので、Awakeが完了していることを前提とした他オブジェクトのメソッド呼び出しなどはやってはいけない。 せいぜい、他オブジェクトへの参照を得ておくだけにして、ここで得た参照をStart/Updateで使うべき Start 初回のUpdateの前に呼ばれるだけ Update 毎フレーム呼ばれる (ここで挙げた)すべての関数は、それを実装するオブジェクトについて実行順が未定義である*1(親子関係があったとしても、子から実行されるとか親から実行されるとかそういうの
June 2016 (1) May 2016 (1) January 2016 (1) December 2015 (1) November 2015 (1) October 2015 (1) September 2015 (2) August 2015 (1) July 2015 (1) June 2015 (2) May 2015 (2) April 2015 (1) March 2015 (1) January 2015 (1) December 2014 (3) October 2014 (5) September 2014 (2) February 2014 (2) July 2013 (3) June 2013 (1) January 2013 (2) December 2012 (1) November 2012 (1) October 2012 (5) September
アプリ開発。Objective-C、Flash、cocos2d、Unity、Unreal Engine 4、ライブラリ、ツール類について。 スクリプトからGameObjectを動的に生成するには、UnityではPrefabというAssetを準備して、そのPrefabをInstantiate関数を使ってインスタンス化するのが一般的なようです。 ゲームを作るなら、この辺りの仕組みを最初に覚えてしまった方がいいでしょう。 リファレンスマニュアルにはJavascriptのサンプルコードが付いていますが、残念ながらC#版は見られませんでした。 この記事の後半に僕が作成したC#のサンプルコードを掲載しておきます。 Instatiate関数は、Javascriptでは以下のように定義されています。 static function Instantiate (original : Object, posit
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く