うえすと開発メモ

Steam上でゲームをリリースする際に、Steamworks SDKの組み込みが必要になります。
steamworks
Steamworks ドキュメンテーション (要Steam開発者登録)

Steamworks SDKはC++のdllのため、Unityで使う場合はネイティブコード呼び出しで使用する必要がありますが、
ほぼ全APIをC#でラップしてくれているありがたいプロジェクトがありました。

GitHub - Steamworks.NET
ドキュメント - Steamworks.NET

このエントリーをはてなブックマークに追加 Clip to Evernote

Unity5.3で追加されたJsonUtilityを少し使ってみました。
http://docs.unity3d.com/ScriptReference/JsonUtility.html

JsonUtility.ToJsonJsonUtility.FromJsonで変換する。

・内部でUnityのシリアライザを使っているので、自前のクラスを含めたい場合、
MonoBehaviourとScriptableObjectを継承していればそのまま変換される。
そうでないクラスや構造体には[Serializable]属性を付けないと無視される。

・DictinaryやHashtableはシリアライズされないため、これも無視される。
回避策として、Json化したいクラスでISerializationCallbackReceiverを継承し、
OnBeforeSerializeOnAfterDeserializeでシリアライズ前、デシリアライズ後のタイミングをフックできるので、List等の別の型に置き換える。

以下、テスト用のコンポーネント。


このエントリーをはてなブックマークに追加 Clip to Evernote

uGUIでワールド位置のオブジェクト上に追従するHUDの実装方法。
ugui_bmfont_07
CanvasのRenderModeが「Screen Space - Cameta」か「WorldSpace」の場合にUI座標を3D空間のオブジェクト位置から取得したい場合、
Camera.WorldToScreenPointで、メインカメラ上のスクリーンポジションを取得して、
RectTransformUtility.ScreenPointToLocalPointInRectangleで、
表示したいUIの親RectTransform配下のローカルポジションを取得します。 

↑の動画では以下のスクリプトコンポーネントをHUD用のUIに付けて、
ターゲットを指定しています。


このエントリーをはてなブックマークに追加 Clip to Evernote

このページのトップヘ