DOTS(Data-Oriented Technology Stack)は、現在 Unity が再構築している中核基盤です。このセッションでは DOTSの基本を解説し、その勘所をお伝えします。DOTSを習得するとプログラミングの幅が広がります。ご自身の技能向上のきっかけにもしてください。
Cy#の河合です。今回、『UniTask』という新しいUnity用の非同期処理ライブラリを公開しました。 [GitHub – Cysharp/UniTask] 新規公開、ではありますが、実は新しいわけではなく、元々UniRxの機能として公開していたものを、分離したものとなります。併せてUniRxも更新していて、お互いに依存が一切ない独立したものになっています。 概要に関しては、以前に公開した以下のスライドで詳しく述べていますが、改めてまとめてみます。 async/awaitまでのC#/Unityの非同期処理 一般に、非同期処理はコールバックで完了後のメソッドを呼び出す形で実装できます。Unityも例外ではなく多用されていますが、 複雑な処理でネストが多重になる その際、内側の例外は外側には伝搬されない 処理順序がコードから見えなくなる といったような、いわゆるコールバック地獄に陥ります。代
本記事は Unity Advent Calendar 2018 の 13日目 の記事です。 qiita.com 普段Zenjectを趣味で使っているのですが、Zenjectは基本的なDIContainer機能の他に、ちょっとDIから離れた便利機能をいくつか提供しています。MemoryPool TestFrameWork Reflection Baking Signal などです。今回はこれらの中で Signal の使い方について解説していきます。 Pub/Subの話 Signalsの話をする前に、Signalsの考え方であるPub/Subについて軽く解説していきます。 メッセージング ゲームはイベント駆動が多いので、状態の変更を通知したくなるときが結構あります。ゲーム開始したらキャラクタを動かし始めたいとか、時間切れを知らせてプレイヤーの操作を受け付けなくしたりとか。そんなとき、通知元と通
Unity(ゲームエンジン)とGoogle が パートナーシップを結んだぜ、みたいなニュースが記憶に新しいですが、 先月末くらいに、彼らのオンライン対戦FPSのサンプルコードについての詳しい解説動画が上がってました。 FPS Sample Game Workflows | Unity ちなみに、このゲームのソースコードは、 アセットも含めて全て Github で公開されています。 Unity-Technologies/FPSSample 動画のなかでも、とくにこれが興味深いです。 Deep dive into networking for Unity's FPS Sample game - Unite LA - YouTube UDPを使ったオンライン同期のサーバサイドの実装、とくに同期の詳細なメカニズムについて、ここまで噛み砕いた説明を見たことがなかったので、僕にとってはなかなかインパク
問題点 ECSを使っているプロジェクトにUniRxをぶちこむと、ECSとUniRxのPlayerLoopが喧嘩してUniRxが勝ちます(ECSが動かなくなります) やはりECSでも(相性が良いかはともかく)Rxしたいので、UniRxを使う方法を探ってみました。 内部のコードを読む PlayerLoopにGetCurrentがないため、UniRxとECSがそれぞれ初期化時にnew PlayerLoopSystemした上で、PlayerLoop.SetPlayerLoop(playerLoop)しています。 どちらもRuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)のタイミングで呼ばれていますが、たまたまUniRxが後に呼ばれているため、そちらのPlayerLoopが優先されているようです。 ECS陣
8. public class Hierarchy : EditorWindow { public Dictionary<int, bool> foldouts = new Dictionary<int, bool>(); void OnGUI() { var id = 1; foldouts[id] = EditorGUILayout.Foldout(foldouts[id], "Parent"); if (foldouts[id]) { EditorGUI.indentLevel = 2; EditorGUILayout.LabelField("Child"); } } } 9. public class Hierarchy : EditorWindow { public Dictionary<int, bool> foldouts = new Dictionary<int, bool
Unity2017から正式に .NET4.6 C#6.0 が利用できるようになりました。 もっとスマートにコードを書きたいのに妥協していた人や、HoloLensアプリ開発でUnityEditorとUWPプロジェクトのC#バージョンの違いにビルド時のエラーで気づかされてああんもうってなってた人には待ちに待った機能ではないでしょうか。 C#バージョンの変更方法はこちら。 blogs.unity3d.com 早速コルーチンとasync/awaitの同時利用などを試してみました。 using System.Collections; using System.Threading; using System.Threading.Tasks; using UnityEngine; public class NewBehaviourScript : MonoBehaviour { private cons
ofurocafe-utatane.com また合宿してました。もう今年5〜6回は合宿してる気がする。 一泊する合宿では最安値。移動とか食事とかビールとか込みで、トータル1万円くらい (圧倒的コスパ感) 宿のポイント Good 1ヶ月前に予約したら早割で1泊1人2900円という安さ 無限コーヒー2種類 管内着がゆったり なんか雰囲気がよい サウナ・露天風呂あり。風呂結構広い Cafeが結構料理とかクオリティ高い(1食800〜1500円くらい) 24:00以降も利用できて、フロントでビールとかツマミを買ってダラダラ飲めて良かった Bad 値段が安いせいか、学生とか女子会?っぽいメンバーが多い 席がなくて通路とか床に座ってる人がいた 荷物とか本を置きっぱなしにして強引に席を確保して回転率を下げている集団が多かった ランチの回転率が圧倒的に悪かった(2時間制とかなんかうまく運用でカバーしないとや
この記事は、アプリ起動時に指定のメソッドを呼ぶ「RuntimeInitializeOnLoadMethod」に可能性を感じたが錯覚だった気が で絶望した戦士たちが、よく見たらそんなこと無かったと気づくストーリーである。 要するに書き直し。 RuntimeInitializeOnLoadMethod Awakeの前にRuntimeInitializeOnLoadMethodを呼び出す 例:ゲームに必要な処理を生成する 呼ばれなくても呼ばれるRuntimeInitializeOnLoadMethod 呼出順の設定は出来ない 便利な機能だが使う際には注意を 関連 RuntimeInitializeOnLoadMethod RuntimeInitializeOnLoadMethodはAttribute(属性)である。彼は、ゲーム開始時に設定したメソッドを呼び出す為に存在するのだ。 例えば下のように
Using Intel.com Search You can easily search the entire Intel.com site in several ways. Brand Name: Core i9 Document Number: 123456 Code Name: Emerald Rapids Special Operators: “Ice Lake”, Ice AND Lake, Ice OR Lake, Ice* Quick Links You can also try the quick links below to see results for most popular searches. Product Information Support Drivers & Software
Using Intel.com Search You can easily search the entire Intel.com site in several ways. Brand Name: Core i9 Document Number: 123456 Code Name: Emerald Rapids Special Operators: “Ice Lake”, Ice AND Lake, Ice OR Lake, Ice* Quick Links You can also try the quick links below to see results for most popular searches. Product Information Support Drivers & Software
はじめに Unityでユーザデータを保存する仕組みとしてPlayerPrefsがありますが これは速度や保存する量にあまり期待ができません。 そこで永続化の候補としてFlatBuffersを使ってみませんか?という話です。 検証条件 Unity 5.3.3f1 FlatBuffers 1.3.0 Android/iOS上での実行の確認 FlatBuffersとは FlatBuffersはバイナリで保存するシリアライザーです。 cocos2dxのgame dataに採用されていたり Facebookで使用されているようです。 JSONでは構造定義と値をテキストファイルに保存するため、 視覚的に、直観的に、編集が可能ですが ファイルサイズが大きくなりデータの解析に時間がかかるという側面があります。 ゲームは速度が優先されるためJSONの使用はあまりオススメできません。 FlatBuffersは
モバイルのVRではキーボードやマウスなどが使えないケースが多く、視点による選択を行うことが少なくありません。 ただ、一瞬見ただけで選択されてしまうと問題があるので、一定時間見つめたのちに選択、ということをします。 そして見つめた時間の経過を円形のプログレスバーで表示しようと思ったんですが、テクスチャで行うと荒れてしまったり太さなどを自由に変更できなかったのでシェーダだけで実現しようと書いたのが今回の内容です。 ちなみに実行結果はこんな感じになります↓ 透明の扱いを変更する まず、透明度を物理ベースのレンダリングで行わないように変更する必要があります。 (Unity5以降では透明オブジェクトは現実世界のプラスチックやガラスのように、透明だけどライティングの影響を受けて、「そこに物体がある」ことが分かるようにレンダリングされるためです) そのためには以下のようにTagsと#pragmaを少し変
Unity 2 Advent Calendar 2015 23日目の記事です。 軽い雪を! Unity で雪を降らせましょう。それもデモデモしたカッコイイのじゃなくて、そのままゲームに使えちゃうような、 なるべく実用的なものを。つまり軽いやつ。 サンタさんありがとう的な雪を! GPU で描く というわけで GPU を使うしかないですね。とはいえコンピュートとかは使いません。大抵のプラットフォームで動作するものを目指します。予め頂点を山ほど用意しておいて、頂点シェーダでビルボードにする作戦です。(まあ、よくある話なんですけど、意外とまとまったのはないような) Snow.cs いきなりソースコード。上から順番に解説してきます。 [RequireComponent(typeof(MeshFilter),typeof(MeshRenderer))] public class Snow : Mono
2015-12-05 Unity UIのAnchorsでレスポンシブアニメーション この記事はkyusyukeigoさん主催,Unity2 Advent Calendar 2015に参加しています。 4日目は,WheetTweetさんの「非同期処理中にUnityAPIを使えるSpicyPixel Concurrency Kitのご紹介」でした。 本記事ではUnity UIのAnchorsを使用して,レスポンシブなアニメーションをUnityエディタの標準機能だけで組みます。 Anchorsの仕様変更 Anchorsに「0〜1」以上,あるいは以下の数値を入れられるようになっています。いつ頃からなのかは調べていませんが,少なくとも4.6の頃は無理でした。 「0〜1」の範囲に限定されずに自由な数値を入力可能になった。バージョンはUnity5.2.3 自由な数値を入力可能になったことで,Unityエ
UniRxについての記事のまとめはこちら UniRxで「○○をやりたいけど効率的な方法がわからない!」という方のために、UniRxでできることを逆引きでまとめてみました。 前提 ObservableはSubscribe(またはConnect)されたタイミングで生成される Observableを流れるメッセージではOnNext,OnError,OnCompletedの3種類ある 「Observableの最後の値」とは「OnCompleted発行時に最後に発行されたOnNext」という意味 オペレータ一覧 *が付いているものは複数使い道がある/言い回しが違うオペレータ ファクトリメソッド やりたいこと オペレータ 備考
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く