タグ

2016年8月25日のブックマーク (7件)

  • GitHub - dotBunny/VSCode: Unity Visual Studio Code Integration

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - dotBunny/VSCode: Unity Visual Studio Code Integration
    gen0083
    gen0083 2016/08/25
    MacでVisual Studio Codeを使ってUnityのスクリプトを書くときに、プロジェクトごとに導入する必要がある
  • Unityの座標はいろいろあって難しい

    Unityの座標系は複雑だなぁという話。 Unityでこんな機能を実装したかった。 画面をクリックした位置に文字を表示させたい。文字はuGUITextを使って表示し、クリックした座標にTextのTransform.positionを書き換えれば良い。しかしそれだと、画面端のあたりをクリックすると文字が画面外にはみ出してしまう。文字が見きれる場合には、見切れないように表示する座標を補正したい。図にするとこんな感じ。 こういうことがやりたかったのだけど、どうやるのがベストなのだろうか。 とりあえず以下の情報があればできるはずであると考えた。 クリック位置の座標 Textの枠の左下と右上の座標(別に左上と右下でもいいけど) 表示できる座標の範囲 クリックした座標から、テキストの枠の左下と右上の座標を算出し、その座標がスクリーンの表示可能な座標外に出ているのであれば、はみ出してる分だけテキストの

    Unityの座標はいろいろあって難しい
    gen0083
    gen0083 2016/08/25
  • [Unity] ポーズ動作をTime.timeScale=0を使わずに実現する

    ゲーム全体をポーズしたいとき、Time.timeScale=0としてゲームの進行時間を停止すれば簡単に実現できます。 しかし、アニメーションの動作も停止してしまい、ポーズ中に別のアニメーションを動かしたい場合に問題となってきます。 手動で無理やり動かすことも不可能ではないですが・・・ そこで、今回はTime.timeScaleの値を弄らずにポーズ動作を実現する方法について紹介します。 基的な考え方は、「レンダラ以外のコンポーネントを無効にする」ことです。 アニメーションやコライダー、スクリプトなどのUpdate動作を持つコンポーネントを無効にすると、Update()が呼び出されなくなり、結果として動作を停止させることが出来ます。 レンダラを無効にしないのは、レンダラを無効にするとオブジェクトそのものが描画されなくなってしまうためです。 これらのUpdate()を持つコンポーネントはBeh

    [Unity] ポーズ動作をTime.timeScale=0を使わずに実現する
    gen0083
    gen0083 2016/08/25
    一時停止をレンダラを除いた全てのコンポーネントを無効にすることで実装する方法
  • UnityのCameraが使う3つの座標系 - テラシュールブログ

    目次 目次 3つの座標系 スクリーン座標 ワールド座標 ビューポート座標 各座標系を使用するケースと変換 WorldToViewportPoint ScreenToWorldPoint ViewportToWorldPoint 関連 3つの座標系 Unityの使用するカメラでは、3つの座標系があります。すなわち「スクリーン座標」「ワールド座標」「ビューポート座標」です。 スクリーン座標 解像度と一致します。例えば640x480の場合、左が0で右が640です。ピクセルパーフェクトで座標を指定したい場合、この値が基となります。 マウスの座標はスクリーン座標で取得しているため、マウスの値を他の2つへ変換したい場合、この値が基となります。また、OnGUIはこの値が基値です。 ワールド座標 3D空間内の座標の事を指します。例えば pos(x:0, y:0, z:0)のような形で、特定のオブジェ

    UnityのCameraが使う3つの座標系 - テラシュールブログ
    gen0083
    gen0083 2016/08/25
    カメラで使う座標、スクリーンがいわゆるピクセル、ワールドはUnity上の絶対座標、ビューポートは画面の左下を0右上を1とした座標
  • Debug.Logを無効化 - Qiita

    UnityのDebug.Logは、製品化したときもログを吐いてしまいます。 AndroidなどでLogcatすると割と誰でもログを見れてしまうので、できれば製品版では無効化しておきたいところ。 また、Debug.Logは実はかなり負荷が高いです。一度に何十というログを出したりなどしていると、実機になった途端に謎の処理落ち頻発とかになります。「Unityじゃなんともなかったのに!なんでガクガクなの?」とかなったら疑ってみると良いかと思います。 さて、実際にログを消そうとしても、一つ一つコメントアウトしたり必要になるたびに戻す…というのは大変です。自分も困って悩んでたんですが、良いやり方を聞いたので、紹介します。 2016/7/28更新 紹介していたやり方が古かったので、新しいやり方をまとめました。 2020/6/28更新 無効化されるわけではない点が間違っていたので修正しました。 Playe

    Debug.Logを無効化 - Qiita
    gen0083
    gen0083 2016/08/25
    デバッグログをリリース版では無効にする方法
  • 【Unity】【uGUI】Screenの座標とWorld(3D)座標の変換について - テラシュールブログ

    HUDのように、UIをキャラクターの上に表示する方法について、少し悩んだのでメモします。 World SpaceとScreen Spaceについて World座標をUIの座標へ変換する World Space を Screen Space Overlayへ World Space を Screen Space Cameraへ World SpaceをWorld Spaceへ ScreenSpace Overlayを他の座標系へ変換する UIの座標をWorld Spaceに変換する 関連 World SpaceとScreen Spaceについて UIを考える場合、二つの座標系について考える必要があります。つまりWorld SpaceとScreen Spaceです。 World spaceは3D空間上の座標で、XYZで指定します。この座標は世界の中心点(x:0, y:0, z:0)を基準にした

    【Unity】【uGUI】Screenの座標とWorld(3D)座標の変換について - テラシュールブログ
    gen0083
    gen0083 2016/08/25
    uGUIのスクリーン座標について
  • 【Unity2D】2Dゲームを作るときのMonoBehaviourを使いやすくするクラスの設計 - Qiita

    using UnityEngine; using System.Collections; /// キャラクター基底クラス. /// SpriteRendererが必要. [RequireComponent (typeof(SpriteRenderer))] public class Token : MonoBehaviour { /// プレハブ取得. /// プレハブは必ず"Resources/Prefabs/"に配置すること. public static GameObject GetPrefab (GameObject prefab, string name) { return prefab ?? (prefab = Resources.Load ("Prefabs/" + name) as GameObject); } /// インスタンスを生成してスクリプトを返す. public

    【Unity2D】2Dゲームを作るときのMonoBehaviourを使いやすくするクラスの設計 - Qiita
    gen0083
    gen0083 2016/08/25
    2D用のあったら便利なユーティリティクラス