2018年07月29日

オブジェクト位置に合わせてCanvas内に表示をする方法

Unityでオブジェクトの位置に応じてCanvas内に表示をしてみようと思って方法を探してみました。

Canvasに「Screen Space - Overlay」を設定している場合

RectTransformUtility.WorldToScreenPointを使うと簡単にできるようです。

具体的には、

Vector3 position;

GetComponent ().position = RectTransformUtility.WorldToScreenPoint (Camera.main, position);

のような感じで設定します。

ちなみに、「Screen Space - Overlay」以外の場合は違う方法が必要になるそうです。それなりに複雑そうな感じだったので必要になった時に調べてみようと思います。

リンク

【Unity】【uGUI】Screenの座標とWorld(3D)座標の変換について - テラシュールブログ
http://tsubakit1.hateblo.jp/entry/2016/03/01/020510

UnityのUIをスクリプトから操作する方法
http://unity3d.sblo.jp/article/182131157.html
posted by unity-chan at 22:49 | GUI

2018年06月05日

UnityでScreenshotMovieを作成するスクリプト

Unityで作ったゲームのScreenshotMovieを作成できるスクリプト

ScreenshotMovie - Unify Community Wiki
http://wiki.unity3d.com/index.php/ScreenShotMovie

作成されるファイルはPNG形式の連番画像ファイルになるので、FFmpegや他の動画編集ソフト等で動画に変換してください。

FFmpegで動画ファイルに変換するコマンド例

$ ffmpeg -an -i screenshot.mp4 "shot %04.png"

リンク

ScreenshotMovie - Unify Community Wiki
http://wiki.unity3d.com/index.php/ScreenShotMovie

FFmpeg
http://ffmpeg.org/
posted by unity-chan at 10:14 | GUI

2018年01月09日

UnityのUIでDrag and Drop

UnityのUIでDrag & Drop。

IBeginDragHandler, IDragHandler, IDropHandlerを継承するとOnBeginDrag, OnDrag, OnDropが使えようになるそうです。

public class Example : MonoBehaviour, IBeginDragHandler, IDragHandler, IDropHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
Debug.Log("OnBeginDrag");
}

public void OnDrag(PointerEventData eventData)
{
Debug.Log("OnDrag");
}

public void OnDrop(PointerEventData eventData)
{
Debug.Log("OnDrop");
}
}

Drag & Dropに限らず、UnityでUIを使うときはEventSystemも必要になるので気を付けてください。

リンク

uGuiでDrag And Drop処理 - Qiita
https://qiita.com/divideby_zero/items/d8eebc44e151a60b2b81

unity4.6 beta / uGUI ドラッグ編 - petlust
http://petlust.hateblo.jp/entry/2014/08/24/190838
posted by unity-chan at 00:45 | GUI

2016年09月01日

UIとGameObjectが重なっている場合の判定方法

Raycastを使ってGameObjectの選択をしているプログラムで、UIとGameObjectが重なっている場合に使える方法。

using UnityEngine.EventSystems
EventSystem.current.IsPointerOverGameObject()


参考元リンク

How to make UI block raycats (mobile) | Unity Community
http://forum.unity3d.com/threads/how-to-make-ui-block-raycats-mobile.271978/
posted by unity-chan at 20:01 | GUI