Programming」カテゴリーアーカイブ

プログラミング全般に関するカテゴリーです。

ScreenToWorldPointでクリックした位置のWorld座標が取得できない場合

マウスでクリックした位置に対応するWorld座標を取得したい場合、Camera.ScreenToWorldPointを使うと思いますが、たまに正しい値が取得できないことがあります。

Camera.main.ScreenToWorldPoint (Input.mousePosition);

そういう場合は、CameraのProjectionOrthographicに設定してみるとうまくいくこともあるみたいです。

ちなみに、Perspectiveで正しい値が取得できない理由はよく分かりませんでした。

リンク

Unity で ScreenToWorldPoint が常に同じ座標を返す件 – nirasan’s tech blog
http://nirasan.hatenablog.com/entry/2014/03/28/093924

Unity – Scripting API: Camera.ScreenToWorldPoint
https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

Pillow (Python Imaging Library)でPNGファイルを扱う時の注意

Pythonのライブラリ「Pillow」を使ってPNGファイルをJPGファイルに変換したい場合、次のようなスクリプトで実行できます。

from PIL import Image
Image.open('example.png').save('example.jpg')

ただし、PNGファイルにAlpha値が含まれていると次のようなエラーになってしまいます。

OSError: cannot write mode RGBA as JPEG

ということで、予めRGBAからRGBに変換しておくと、この問題を回避できます。

Image.open('example.png').convert('RGB').save('example.jpg')

リンク

Pillow: the friendly PIL fork
https://python-pillow.org/

Unity License Error

タイミング的にWindowsのアップデートが関係していると思いますが、Unityを起動しようとすると「Unity License Error」と表示され、起動できなくなってしまいました。

Unity-License-Error

Webでいろいろ調べてみたところ、とりあえず次のような感じで再アクティベーションできるみたいです。

  1. Unityを終了して、C:\ProgramData\Unityのフォルダーを削除もしくはリネーム
  2. 再度Unityを起動して通常通りにアクティベーション

必ずうまくいくという方法ではないと思いますので、メッセージにある通りUnityのサポートに連絡するのが一番良いと思います。

特に業務で使っているような場合は注意してください。

リンク

unity3d – Unity license error on startup – Stack Overflow
https://stackoverflow.com/questions/46506184/unity-license-error-on-startup