fogleman/Minecraft · GitHub Pythonで実装されたMinecraftですってよ、奥さん。しかも、ソースコードたったの1,000行未満! YouTubeの動画をご覧になって。 というわけで、私の環境(Mac)でも試したら簡単に動いちゃいました。 手順は以下です。 ※GitHubにある指示に従ってPythonの32bitモード(?)で実行しています。$ sudo easy_install pip $ sudo pip install pyglet $ git clone https://github.com/fogleman/Minecraft.git $ cd Minecraft $ defaults write com.apple.versioner.python Prefer-32-Bit -bool yes $ arch -i386 p
スクリプトからシーン上のオブジェクトを取得するには幾つか方法がありますが、 よく使う3つをまとめておきます。 ※例はC#のコードです。 名前指定 GameObject target = GameObject.Find("HogeName"); タグ指定 最初にヒットしたオブジェクトを取得 GameObject target = GameObject.FindWithTag("HogeTag"); タグ指定 ヒットしたすべてのオブジェクを配列で取得 GameObject[] targets = GameObject.FindGameObjectsWithTag("HogeTag"); 配列で取得した場合は、個別のオブジェクトへのアクセスはforeachを使うと楽です。 foreach (GameObject target in targets) { // do something }
Blenderで作成したオブジェクトをUnityにインポートしてみたら、 オブジェクトのエッジにスムージング処理がかかってました。 Unity側にスムージング処理の設定が見当たらなかったので、 Blender側でEdge Splitモディファイアを追加することでシャープにしてみました。 [Blender] オブジェクトを選択 > プロパティウィンドウからモディファイアメニューを表示 > Edge Splitを選択 Unity側でみてみると、エッジがシャープになっているのが確認できます。 Edge Splitモディファイアは、Splitする角度の設定もできるようですので、 いろいろ試してみてください。
Debug.DrawLineメソッドを使えば、 2点間を結ぶラインを簡単に表示することができます。 (ラインはシーンビューのみに表示されます。ゲームビューにはレンダリングされません) ベクトルの向きやオブジェクトの位置関係等を視覚的に確認したい時に重宝してます。 [C#] using UnityEngine; using System.Collections; public class example : MonoBehaviour { GameObject target1; GameObject target2; void Awake () { this.target1 = GameObject.Find("Ball"); this.target2 = GameObject.Find("Cube"); } void Update () { Debug.DrawLine(this.targ
Unityのプロジェクトフォルダ内にあるAssetsフォルダに、 .blendファイルを置くだけで自動的にインポートしてくれます。 例えば、以下のようなオブジェクトをBlender側で作成したとします。 これを「cube.blend」というファイル名で、Assetsフォルダ内に保存します。 これでUnityのProjectパネル内にcubeのオブジェクトとマテリアルが追加されます。 cubeオブジェクトをProjectパネル内からSceneビューにドラッグ&ドロップすれば、 インスタンス化されます。 この状態で、Blender側のオブジェクトに変更を加えてみます。 Unity側のオブジェクトも自動的に変更が反映されました。 UnityとBlenderの組み合わせだと、オブジェクトの修正が楽ですね。
Physics.Raycastを使用して、球(Ball)が地面(Ground)に接地しているかを判定してみます。 ※球にはSphereColliderがアタッチされているものとします。 [C#] using UnityEngine; using System.Collections; public class Ball : MonoBehaviour { SphereCollider ballCollider; GameObject ground; void Awake() { // Ballオブジェクトのコライダを取得 this.ballCollider = GetComponent<SphereCollider>(); // Groundオブジェクトを取得 this.ground = GameObject.Find("Ground"); } void Update() { pri
UnityのScriptリファレンスを参考にインスタンス化のコードを書いたら エラーで怒られたので、その対処法です。 書いたコード(C#): using UnityEngine; using System.Collections; public class Example : MonoBehaviour { public GameObject hogePrefab; void Update () { if (Input.GetButtonDown("Fire1")) { GameObject hoge = Instantiate(this.hogePrefab, transform.position, transform.rotation); } } } } エラー: Cannot implicitly convert type `UnityEngine.Object’ to `Unity
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く