SlideShare a Scribd company logo
1 of 148
Download to read offline
UnityでのLINQ活用例
室星亮太
2015/02/20(金)
質問です
Unityでゲームを作成している方?
LINQ知っている方?
LINQ使っている方?
LINQがっつり使っている方?
ありがとうございました
UnityでのLINQの活用事例を通し、
LINQの良さや利用方法を紹介します。
今日の目標
みなさんに
• LINQを使うとコードが読みやすくなることを知ってもらう
• LINQを活用できるシーンが多いことを知ってもらう
• LINQを使ってみよう・勉強してみようと思ってもらう
• LINQにこんな便利なメソッドあったんだと知ってもらう
Unityでの例を通して!
ところで
ゲーム開発で大切なもの
たくさんありますよね
その中のひとつ
簡潔で読みやすいコード
なぜかって?
動けば同じじゃないかって?
仕様、変わりますよね?
リリース後もアプデしますよね?
「汚いコードでとりあえず動く物」
短期的には早いかもしれない
×"短期的な開発速度
⃝!中・長期的な開発速度
仕様は開発途中で変わりますよね?
簡潔で読みやすく奇麗なコード
これに比べて汚く長いコードの
仕様変更はとても大変!
遊びながら試行錯誤し面白い物を作る
それには簡潔で読み安いコードが必要!
あと汚く長いコード、まじアプデしんどい!
読みやすいコードは大切
賛成していただけますか?
ところで今日のテーマは
LINQです
LINQを使うと、
リストなどのコレクションを扱うコードが、
簡潔に読みやすくなりますよ!
さて、LINQとは
LINQとは
統合言語クエリ!(LINQ)!は、強力なクエリ機能を!C#!言語および!
Visual!Basic!言語の構文へと拡張する、Visual!Studio!2008!で導入
された機能のセットです。!
MSDN%LINQよりh*ps://msdn.microso7.com/ja:jp/library/bb397926.aspx
イメージわきます?
配列とかリストとかディクショナリとか
シーケンス(↑のようなオブジェの集まり)を
を扱うコードがLINQを使うと綺麗に書ける
ってことだけとりあえず今はイメージしてください(適当ですいません)
今日お話しするのは、LINQ%to%Objectsです
今日の話で「LINQが使えるようになる」とはなりません。みなさんに便利さを紹介しようと思います。
自己紹介
• 名前:室星亮太
• 所属:Fuller,)Inc.
• 仕事:Unityを用いたゲーム開発
• 投稿先:h3p://qiita.com/RyotaMurohoshi
• Twi3er:@RyotaMurohoshi
• コミュニティ:Androidの会Unity部
ライブラリUniLinq作ったり
UniBookでLINQについて書いたり
LINQ大好きです!
「LINQのないC#なんてC#じゃない」
って言う方もいますが、私もそう思います!
そんな私が
こういう風に使える、こんな状況で使える
という例をガンガン紹介していきます
第一部
今すぐに使って欲しいメソッド3選
Count・All・Any
こんなクラスがあって
public class Monster
{
public int Id { get; set; }
public string Name { get; set; }
public int Hp { get; set; }
/* 中略 */
}
List<Monster>の中でHpが0以下の要素を数える
のようなリスト内の指定の条件を満たした要素を数える
ってことやりません?
Count
特定の条件を満たした要素を数える
Hpが0以下の要素、つまり死んでいる
モンスター(Monster)の数を数えたい
よくあるforeach、ifのコード
List<Monster> monsterList = LoadMonsterList ();
// LINQを使わないと
int deadMonsterCount = 0;
foreach (Monster monster in monsterList) {
if(monster.Hp <= 0) {
deadMonsterCount++;
}
}
Count
指定の条件を満たした要素を数える
List<Monster> monsterList = LoadMonsterList ();
// Hpが0以下の要素の数に
int deadMonsterCount =
monsterList.Count ((Monster monster) => monster.Hp <= 0);
さっきの2つのコード
どう読めます?
このコード、どう読みます?
List<Monster> monsterList = LoadMonsterList ();
// LINQを使わないと
int deadMonsterCount = 0;
foreach (Monster monster in monsterList) {
if(monster.Hp <= 0) {
deadMonsterCount++;
}
}
int型のdeadMonsterCountを0で初期化
foreach文でmonsterListをまわす
もし要素のmonsterのHpが0以下ならば
deadMonsterCountをインクリメント
あ、つまり!
HPが0以下のモンスターを数えるのか!
という1回頭の中での変換が必要
一方LINQは?どう読みます?
// LINQを使うと
List<Monster> monsterList = LoadMonsterList ();
// Hpが0以下の要素の数に
int deadMonsterCount =
monsterList.Count ((Monster monster) => monster.Hp <= 0);
int型のdeadMonsterCountを次の値で初期化
monsterList内の次の条件を満たす要素数だ!
条件は要素のHPが0以下だ!
ほぼ意味的に、
「Hpが0以下のモンスターを数えろ!」
左から右に素直に読める!
foreach文、if文のは
「どう処理しているか」が書かれている
LINQでは
「何がしたいか」が書かれている
だからLINQのコードは読みやすい
しかも簡潔
ここからは基本、LINQ版のみでさくさく行きます
Any
特定の条件を満たす要素が
存在するか調べる
Any
特定の条件を満たす要素が存在するか調べる
List<Monster> monsterList = LoadMonsterList ();
// Hpが0以下のモンスターが存在すればtrue
bool isExistDeadMonster =
monsterList.Any((Monster monster) => monster.Hp <= 0);
All
全ての要素が指定の条件を
満たすか調べる
All
全ての要素が指定の条件を満たすか調べる
List<Monster> monsterList = LoadMonsterList ();
// 全てのモンスターのHpが0以下ならばtrue
bool isAllMonsterDead =
monsterList.All((Monster monster) => monster.Hp <= 0);
次はUnityっぽいので
かつ
割とマイナーなやつを
第二部
Editor拡張でも活躍
OfType
OfType
指定の型の要素のみにフィルタリングし、
指定の型のシーケンスに変換
Projectウィンドウ中で選択中の物の中で、
テクスチャ(Textureクラス)のみを処理する
(UnityEditor拡張)
• UnityEditor.Selec0onクラスのobjectsプロパティを利用
• Selec0on.objectsは現在選択しているものを取得
• 型はUnityEngine.Object[]で取得
• これには当然テクスチャ(Textureクラス)以外のものも含まれる
• けどTextureのみを対象にしたい
フィルタリングといえばWhere
これをis演算子とあわせて
foreach (UnityEngine.Object target in
Selection.objects.Where (o => o is Texture)){
// キャストする or as演算子利用がめんどい
Texture texture = target as Texture;
// ここでTextureに何かしらの処理
}
Castメソッドでキャストもできますが
foreach (Texture texture in Selection.objects
.Where (o => o is Texture)
.Cast<Texture>()){
// ここでTextureに何かしらの処理
}
そこでOfTypeですよ!
OfType
指定の型の要素のみにフィルタリングし、指定の型のシーケンスに変換
// Selection.objectsの中の要素をTexture型のみにフィルタリングし、
// IEnumerable<Texture>に変換
foreach (Texture texture in Selection.objects.OfType<Texture> ()){
// ここでTextureに何かしらの処理
}
UnityのEditor拡張で、Selec.onは利用シーンが多い!
(MenuItemと合わせて導入が楽!)
「Selec%on.objects.OfType<Texture>7()」、ぜひ!
実際に使った例がこちら!!h#p://qiita.com/RyotaMurohoshi/items/b01e3cdb91fea96f4574
OfTypeメソッド
他ではNUnitLiteというライブラリを使った際
System.Objectから特定の型への変換でも使いました
Editor拡張でのLINQ活用
LINQ、実はiOSで問題があります
けれどUnityEditor内であれば大丈夫!
Editor拡張から利用し始めるのはオススメ!
第三部
指定の条件を満たす先頭の要素を取得する
First、FirstOrDefault
List<Monster>の中でHpが0以下の要素が一つ欲しい
のようなリスト内の指定の条件を満たす要素を一つ取得する
ってことやりません?
First
指定の条件を満たす先頭の要素を取得する
条件を満たした要素がない場合は例外発生
First
指定の条件を満たす先頭の要素を取得する。条件を満たした要素がない場合は例外発生
List<Monster> monsterList = LoadMonsterList ();
// ひとつもHpが0以下の要素が存在しないなら例外発生
Monster deadMonster = monsterList
.First ((Monster monster) => monster.Hp <= 0);
Firstメソッドは
条件を満たす要素がない場合例外が発生!
じゃあ例外を発生たくない場合?
Anyで存在チェックしてあった場合のみ、もしくは...
FirstOrDefault
指定の条件を満たす先頭の要素を取得する
条件を満たした要素がない場合は
その型の規定値を返す
条件を満たした要素がない場合、
「規定値を返す=nullを返す」じゃない!
ここ要注意!値型の規定値はnullじゃない!
規定値
• クラス型の場合、null
• intの場合、0
• floatの場合、0.0F
• boolの場合、false
• Vector3の場合、x、y、zが全て0.0F
FirstOrDefault
指定の条件を満たす先頭の要素を取得する。条件を満たした要素がない場合はその型の規定値を返す
List<Monster> monsterList = LoadMonsterList ();
// ひとつもHpが0以下の要素が存在しないならMonsterクラスの規定値nullに
Monster deadMonster = monsterList
.FirstOrDefault ((Monster monster) => monster.Hp <= 0);
ここでさらにもう一つ!
DefaultIfEmpty
シーケンスが空ならば引数で渡したものを
唯一の要素とするシーケンスに変換
Firstと組み合わせてこんなことができる
DefaultIfEmpty
シーケンスが空ならば引数で渡したものを唯一の要素とするシーケンスに変換
List<Monster> monsterList = LoadMonsterList ();
Monster defaultMonster = GetDefaultMonster ();
int targetId = GetTargetId ();
// 指定IDのモンスターを探す。なかったらdefaultMonsterに。
Monster targetMonster = monsterList
.Where ((Monster monster) => monster.Id == targetId)
.DefaultIfEmpty (defaultMonster)
.First (); // このオーバーロードは単純に先頭要素取得
ところで
デリゲートとラムダ式
• 「(Monster*monster)*=>*monster.Hp*<=*0」はラムダ式
• 「ラムダ式」ではなく「デリゲート」を引数にとる
• LINQの多くのメソッドがFunc<T,*TResult>を取る
• ラムダ式の用途の一つはデリゲートの生成
詳しくは! h"p://qiita.com/RyotaMurohoshi/items/740151bd772889cf07de にまとめました
第四部
算術計算系
Max、Min、Sum、Average
こんなクラスを使います
public class PlayLog
{
public int StageId { get; set; }
public int Score { get; set; }
public DateTime PlayedAt { get; set; }
public TimeSpan PlayTime { get; set; }
}
List<PlayLog>の要素の中で一番大きいScoreを求める
のようなリスト内要素を変換して、その一番大きい値を求める
ってことやりません?
Max
各要素に変換を施しその最大値を計算する
Max
各要素に変換を施しその最大値を計算する
List<PlayLog> playLogList = LoadPlayLogList ();
// PlayLogListのScoreの最大値
int maxScore =
playLogList.Max ((PlayLog playLog) => playLog.Score);
Min
各要素に変換を施しその最小値を計算する
Min
各要素に変換を施しその最小値を計算する
List<PlayLog> playLogList = LoadPlayLogList ();
// PlayLogListのScoreの最小値
int minScore =
playLogList.Min ((PlayLog playLog) => playLog.Score);
Sum
各要素に変換を施しその合計値を計算する
Sum
各要素に変換を施しその合計値を計算する
List<PlayLog> playLogList = LoadPlayLogList ();
// PlayLogListのScoreの合計値
int sumOfScore =
playLogList.Sum ((PlayLog playLog) => playLog.Score);
Average
各要素に変換を施しその平均値を計算する
Average
各要素に変換を施しその平均値を計算する
List<PlayLog> playLogList = LoadPlayLogList ();
// PlayLogListのScoreの平均値
double averageOfScore =
playLogList.Average ((PlayLog playLog) => playLog.Score);
ところで
LINQとiOS(1)
• Unity+iOSだと実機実行時エラーになることがある
• 理由はAOTコンパイルがうまくいっていないみたい
• それを解決するためにUniLinqっていうやつを作った
LINQとiOS(2)
• IL2CPP登場
• IL2CPPで大丈夫か試したら、テストするやつが実機でエラーに
• AssemblyクラスのCodePathプロパティがnullなのが原因
• 今後も正しく動くかどうかなど、継続して調べていきます!
第五部
並び替え
OrderBy、OrderByDescending
ThenBy、ThenByDescending
List<PlayLog>をScroreの降順で並び変える
のような整列操作
ってやりません?
OrderBy
各要素に変換を施し
その結果で並び替え
OrderBy
各要素に変換を施しその結果で並び替え
List<PlayLog> playLogList = LoadPlayLogList ();
// スコアの降順で並び替え
IEnumerable<PlayLog> orderedPlayLog = playLogList
.OrderByDescending ((PlayLog playLog) => playLog.Score);
OrderByは昇順で並び替え、OrderByDescendingは降順で並び替え
元のデータを並び変えるのでなく、新たに並び替えたシーケンスをつくる
もし同じScoreならどうしよう?
同ScoreならばPlayTimeが短い順にしたい場合は?
もう一度OrderByを呼ぶのは間違い!
ThenBy
OrderByで並び替えたもので、
同評価だったものを並び替え
ThenBy
OrderByで並び替えたもので、同評価だったものを並び替え
List<PlayLog> playLogList = LoadPlayLogList ();
// スコアの降順で並び替えて、同点なら時間が短い方を先に
IEnumerable<PlayLog> orderedPlayLog = playLogList
.OrderByDescending ((PlayLog playLog) => playLog.Score)
.ThenBy ((PlayLog playLog) => playLog.PlayTime);
第六部
スキップと取得
Skip、Take、SkipWhile、TakeWhile
データを画面に10個ずつ表示
インデックス0の1ページ目、0番目から9番目
インデックス1の2ページ目、10番目から19番目
インデックス2の3ページ目、20番目から29番目
ってことやりません
Skip%+%Take
Skip
先頭から引数で渡した個数だけ
要素を飛ばす
Take
先頭から引数で渡した個数だけ
要素を返す
Skip+Take
データを画面に10個ずつ表示、今回は3ページ目(インデックスは2)
List<PlayLog> playLogList = LoadPlayLogList ();
int numPerPage = 10;
int pageIndex = 2;
int skipNum = numPerPage * pageIndex;
// 3ページ目(インデックスは2)、20番から10個の要素を取得
IEnumerable<PlayLog> selectedPlayLogs = playLogList
.Skip (skipNum)
.Take (numPerPage);
今、DateTime型のPlayedAtの昇順でPlayLogが並んでいる
ある時刻から、他のある時刻までのデータを取得したい
SkipWhile)+)TakeWhile
SkipWhile
先頭から引数で渡した条件が真の間
要素を飛ばす
TakeWhile
先頭から引数で渡した条件が真の間
要素を返す
SkipWhile)+)TakeWhile
List<PlayLog> playLogList = LoadPlayLogList ();
DateTime start = GetStartTime ();
DateTime end = GetEndTime ();
// PlayedAtがstartより後or同時刻で、endより前な要素を取得
IEnumerable<PlayLog> selectedPlayLogs = playLogList
.SkipWhile ((PlayLog playLog) => playLog.PlayedAt < start)
.TakeWhile ((PlayLog playLog) => playLog.PlayedAt < end);
第七部
その他オススメ
ElementAt
シーケンス中の
指定のインデックスの要素を取得
⚪番インデックスの要素が欲しい
こういう時、ありますよね。どうします?
あまり書かないかもしれないけど、リファクタリングの途中で必要なこともある?
多くのLINQメソッドの返値型である、IEnumerable<T>型は
インデクサで要素にアクセスできない!
ToArrayはダメ絶対!
// ToArrayで配列にしてからアクセス?
// 効率悪い!!!
// playLogsはIEnumerable<PlayLog>型
PlayLog index5PlayLog = playLogs.ToArray ()[5];
ElementAt
// インデクサはないけれど
// ElementAtメソッドでインデックスにアクセスできる
PlayLog index5PlayLog = playLogs.ElementAt (5);
ToDic&onary
シーケンスから辞書を作る
キーを指定する。バリューも指定できる。
こんなクラスを使います
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public ItemType ItemType { get; set; }
}
public enum ItemType
{
Weapon, ConsumptionItem, ValuableItem
}
List<Item>*からItemのIdをキーとする
Dic$onary<int,-Item>をつくる
みたいなことしたくありません?
それLINQで一行でかけます!
ToDic&onary
シーケンスから辞書を作る!(その1)
List<Item> itemList = LoadItemList ();
// Idプロパティをキーとするディクショナリの生成
// もしキーの重複があったら例外が発生
Dictionary<int, Item> itemDict = itemList
.ToDictionary((Item item) => item.Id);
ToDic&onary
シーケンスから辞書を作る!(その2)
List<Item> itemList = LoadItemList ();
// Idプロパティをキー、Nameプロパティバリューとする
// ディクショナリの生成
// もしキーの重複があったら例外が発生
Dictionary<int, string> itemDict = itemList.ToDictionary(
(Item item) => item.Id,
(Item item) => item.Name);
ToLookup
シーケンスからILookupを作る
グループ化したコレクションを生成
List<Item>*itemListがあって
Dic$onary<ItemType,2List<Item>>が欲しい
LINQにはDic(onary<ItemType,5List<Item>>に似ている
ILookup<ItemType,.Item>が作れるメソッドがある
ToLookup
シーケンスからILookupを作る(グループ化したコレクションを生成)
List<Item> itemList = LoadItemList ();
// ILookup<ItemType, Items>は
// Dictionary<ItemType,List<Item>>に似ている
ILookup<ItemType, Item> itemLookup = itemList.
ToLookup((Item item) => item.ItemType);
// ディクショナリのように[]とキーでそのグループにアクセスできる
IEnumerable<Item> weapons = itemLookup[ItemType.Weapon];
SelectMany
リストのリストの平滑化を行う
SelectMany
リストのリストの平滑化を行う(その1)
// モンスターのリストのリスト
List<List<Monster>> listOfMonsterList = LoadListOfMonsterList ();
// モンスターのシーケンスに
IEnumerable<Monster> monsters = listOfMonsterList
.SelectMany ((List<Monster> list) => list);
SelectManyはリストのリストだけが対象じゃない
結構使える!
こんなクラスがあって
public class MonsterParty
{
public string Name { get; set; }
// Monsterのリスト、このプロパティがミソ
public List<Monster> MonsterList { get; set; }
}
SelectMany
リストのリストの平滑化を行う(その2)
// パーティーのリスト
List<MonsterParty> monsterPartyList = LoadMonsterPartyList ();
// モンスターのシーケンスに
IEnumerable<Monster> monsters = monsterPartyList
.SelectMany ((MonsterParty party) => party.MonsterList);
Dis$nct
重複を除く
Dis$nct
重複を除く
// シンプルな例
int[] ids = new int[]{0, 1, 1, 2, 2, 2, 3, 3, 4};
// 重複が除かれている
IEnumerable<int> distinctedIds = ids.Distinct ();
Dis$nct
重複を除く
// パーティーに同じモンスターはいないが、他のパーティーには同じモンスターがいる
List<MonsterParty> monsterPartyList = LoadMonsterPartyList ();
// 重複の無しモンスターのIdのシーケンスを作る
IEnumerable<int> monsterIds = monsterPartyList
// モンスターのシーケンスにして
.SelectMany (party => party.MonsterList)
// Idのシーケンスにして
.Select (monster => monster.Id)
// 重複を排除する
.Distinct ();
ちなみにLINQには次のような集合演算を行うものもあります
差集合を求める!Except
和集合を求める!Union
積集合を求める!Intersect
Join
二つのシーケンスをキーで突合
PlayLogクラスとStageDataクラスから、PlayDataを作りたい
public class PlayLog {
// StageのIdのみでStageの情報はない
public int StageId { get; set; }
public int Score { get; set; }
/* 中略 */
}
public class StageData {
public int Id { get; set; }
public string Name { get; set; }
/* 中略 */
}
PlayLogクラスとStageDataクラスから、PlayDataを作りたい
public class PlayData {
// StageDataクラスの名前から
public string StageName { get; set; }
// PlayLogクラスのScoreから
public int Score { get; set; }
/* 中略 */
}
List<PlayLog>なplayLogListと
List<StageData>なstageDataListから
PlayDataのシーケンスを作りたい
foreachな例
// foreachな例、長い
List<PlayData> playDataList = new List<PlayData> ();
foreach(PlayLog playLog in playLogList) {
StageData targetStageData = null;
foreach(StageData stageData in stageDataList) {
if (playLog.StageId == stageData.Id) {
targetStageData = stageData;
break; // nullなやつはないよねというコード
}
}
playDataList.Add (new PlayData {
StageName = targetStageData.Name,
Score = playLog.Score,
});
}
LINQ利用な例
// LINQ利用な例、まだ長い
List<PlayData> playDataList = new List<PlayData> ();
foreach(PlayLog playLog in playLogList) {
StageData stageData =
stageDataList.First (stage => stage.Id == playLog.StageId);
playDataList.Add (new PlayData {
StageName = stageData.Name,
Score = playLog.Score,
});
}
Joinの例
IEnumerable<PlayData> playDatas = playLogList.Join (
stageDataList,
(PlayLog playLog) => playLog.StageId, // PlayLogのキー
(StageData stageData) => stageData.Id, // StageDataのキー
// 二つのキーが ったPlayLogとStageDataが来る
(PlayLog playLog, StageData stageData) => new PlayData {
StageName = stageData.Name,
Score = playLog.Score,
});
さて
LINQとのつきあい方
• エラーにならないライブラリを作るor使う
• エラーになるメソッドor使い方で使わない
• Editor拡張のみで使う
• エラーになる問題が直るまで待つ
何か質問あります?
さて、今日の目標のおさらいです
今日の目標
みなさんに
• LINQを使うとコードが綺麗になることを知ってもらう
• LINQを使える活用シーンが多いことを知ってもらう
• LINQを使ってみよう・勉強してみようと思ってもらう
• LINQにこんな便利なメソッドあったんだと知ってもらう
いかがだったでしょうか?
LINQ使ってみたくなりましたか?
ありがとうございました!
@RyotaMurohoshi

More Related Content

What's hot

オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2増田 亨
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善増田 亨
 
同人ゲーム開発者が直面する法律問題
同人ゲーム開発者が直面する法律問題同人ゲーム開発者が直面する法律問題
同人ゲーム開発者が直面する法律問題IGDA Japan
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
Observableで非同期処理
Observableで非同期処理Observableで非同期処理
Observableで非同期処理torisoup
 
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜Unity Technologies Japan K.K.
 
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみようUnity Technologies Japan K.K.
 
TDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTCTDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTChironroinakae
 
WebRTC入門 ~沖縄編~
WebRTC入門 ~沖縄編~WebRTC入門 ~沖縄編~
WebRTC入門 ~沖縄編~Ryosuke Otsuya
 
Node RED で実現する製造業の DX
Node RED で実現する製造業の DXNode RED で実現する製造業の DX
Node RED で実現する製造業の DX雅治 新澤
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法モノビット エンジン
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~UnityTechnologiesJapan002
 
UnityとVuforiaで始めるAR開発
UnityとVuforiaで始めるAR開発UnityとVuforiaで始めるAR開発
UnityとVuforiaで始めるAR開発Takashi Yoshinaga
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門増田 亨
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門増田 亨
 
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介aktsk
 

What's hot (20)

オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2ドメイン駆動設計(DDD)の実践Part2
ドメイン駆動設計(DDD)の実践Part2
 
ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善ソフトウェア開発のやり方の改善
ソフトウェア開発のやり方の改善
 
Di入門
Di入門Di入門
Di入門
 
同人ゲーム開発者が直面する法律問題
同人ゲーム開発者が直面する法律問題同人ゲーム開発者が直面する法律問題
同人ゲーム開発者が直面する法律問題
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
Observableで非同期処理
Observableで非同期処理Observableで非同期処理
Observableで非同期処理
 
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
 
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
 
TDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTCTDPT + VMCプロトコル on WebRTC
TDPT + VMCプロトコル on WebRTC
 
WebRTC入門 ~沖縄編~
WebRTC入門 ~沖縄編~WebRTC入門 ~沖縄編~
WebRTC入門 ~沖縄編~
 
Node RED で実現する製造業の DX
Node RED で実現する製造業の DXNode RED で実現する製造業の DX
Node RED で実現する製造業の DX
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
 
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMERVisual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
Visual Dataprepで建築データを美味しく下ごしらえ UNREAL FEST EXTREME 2021 SUMMER
 
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 
UnityとVuforiaで始めるAR開発
UnityとVuforiaで始めるAR開発UnityとVuforiaで始めるAR開発
UnityとVuforiaで始めるAR開発
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介
スマホアプリにおけるマルチプレイアクションゲーム開発の実例紹介
 

Similar to UnityでのLINQ活用例

UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDとsters
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前Hiroshi Yamato
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)NTT DATA Technology & Innovation
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことJiro Nishitoba
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話Masayoshi Kamai
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことRetrieva inc.
 
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介Kouji Hosoda
 
2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open sourceYoshiyuki Nakamura
 
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウみくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウtorisoup
 
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?Masamitsu Maehara
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介Hiromu Yakura
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会Tetsuya Morimoto
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことKatsutoshi Makino
 
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)YutoNishine
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6信之 岩永
 

Similar to UnityでのLINQ活用例 (20)

UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDと
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前
 
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
OpenJDKのコミッタってどんなことしたらなったの?解決してきた技術課題の事例から見えてくる必要な知識と技術(JJUG CCC 2023 Spring)
 
ChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なことChainerでDeep Learningを試す為に必要なこと
ChainerでDeep Learningを試す為に必要なこと
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
ゲームエンジンの中の話
ゲームエンジンの中の話ゲームエンジンの中の話
ゲームエンジンの中の話
 
ChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なことChainerでDeep Learningを試すために必要なこと
ChainerでDeep Learningを試すために必要なこと
 
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介
 
2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
みくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウみくみくまうすについて&Unity で使えるコーディングノウハウ
みくみくまうすについて&Unity で使えるコーディングノウハウ
 
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
AWS Security JAWS 経済的にハニーポットのログ分析をするためのベストプラクティス?
 
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介
 
Unity ゲーム開発
Unity ゲーム開発Unity ゲーム開発
Unity ゲーム開発
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
 
Unity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだことUnity * スマートフォン開発で学んだこと
Unity * スマートフォン開発で学んだこと
 
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
 
私とUnityとLINQと
私とUnityとLINQと私とUnityとLINQと
私とUnityとLINQと
 

More from Ryota Murohoshi

UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!Ryota Murohoshi
 
【Unity】気づいたら加わっていたあいつ【もくもく】
【Unity】気づいたら加わっていたあいつ【もくもく】【Unity】気づいたら加わっていたあいつ【もくもく】
【Unity】気づいたら加わっていたあいつ【もくもく】Ryota Murohoshi
 
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】Ryota Murohoshi
 
Javaのバージョニング問題の話しよっか
Javaのバージョニング問題の話しよっかJavaのバージョニング問題の話しよっか
Javaのバージョニング問題の話しよっかRyota Murohoshi
 
LINQ、Select連弾ってやります?
LINQ、Select連弾ってやります?LINQ、Select連弾ってやります?
LINQ、Select連弾ってやります?Ryota Murohoshi
 
C#のList_TがIListを実装している件
C#のList_TがIListを実装している件C#のList_TがIListを実装している件
C#のList_TがIListを実装している件Ryota Murohoshi
 
どうしてこのコードエラーになるんですか?
どうしてこのコードエラーになるんですか?どうしてこのコードエラーになるんですか?
どうしてこのコードエラーになるんですか?Ryota Murohoshi
 
広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっか広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっかRyota Murohoshi
 
UnityでC#を勉強しはじめた私の主張
UnityでC#を勉強しはじめた私の主張UnityでC#を勉強しはじめた私の主張
UnityでC#を勉強しはじめた私の主張Ryota Murohoshi
 
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlinRyota Murohoshi
 
「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!Ryota Murohoshi
 
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!Ryota Murohoshi
 
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料などRxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料などRyota Murohoshi
 
共変戻り値型って知ってますか?
共変戻り値型って知ってますか?共変戻り値型って知ってますか?
共変戻り値型って知ってますか?Ryota Murohoshi
 
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数Ryota Murohoshi
 

More from Ryota Murohoshi (17)

UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!
 
【Unity】気づいたら加わっていたあいつ【もくもく】
【Unity】気づいたら加わっていたあいつ【もくもく】【Unity】気づいたら加わっていたあいつ【もくもく】
【Unity】気づいたら加わっていたあいつ【もくもく】
 
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
 
「var禁止」禁止
「var禁止」禁止「var禁止」禁止
「var禁止」禁止
 
Javaのバージョニング問題の話しよっか
Javaのバージョニング問題の話しよっかJavaのバージョニング問題の話しよっか
Javaのバージョニング問題の話しよっか
 
LINQ、Select連弾ってやります?
LINQ、Select連弾ってやります?LINQ、Select連弾ってやります?
LINQ、Select連弾ってやります?
 
C#のList_TがIListを実装している件
C#のList_TがIListを実装している件C#のList_TがIListを実装している件
C#のList_TがIListを実装している件
 
どうしてこのコードエラーになるんですか?
どうしてこのコードエラーになるんですか?どうしてこのコードエラーになるんですか?
どうしてこのコードエラーになるんですか?
 
広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっか広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっか
 
UnityでC#を勉強しはじめた私の主張
UnityでC#を勉強しはじめた私の主張UnityでC#を勉強しはじめた私の主張
UnityでC#を勉強しはじめた私の主張
 
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin
 
T4使ってみた
T4使ってみたT4使ってみた
T4使ってみた
 
「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!
 
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
 
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料などRxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
 
共変戻り値型って知ってますか?
共変戻り値型って知ってますか?共変戻り値型って知ってますか?
共変戻り値型って知ってますか?
 
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

UnityでのLINQ活用例