Mug*_*tsu 1 c# linq unity-game-engine
我正在统一使用 System.Linq,我想知道这是否可以实现:
我想搜索一个 RaycastHits 列表,如果它包含一个带有特定组件的命中,我想返回它而不是 RaycasHit
hits.FirstOrDefault(hit => hit.transform.GetComponent<Target>());
Run Code Online (Sandbox Code Playgroud)
这会返回一个 RaycastHit,其中包含组件 Target。我想立即获取该 Target 组件,这样我就不必在新行中再次获取组件
RaycastHit target = hits.FirstOrDefault(hit => hit.transform.GetComponent<Target>());
Target combatTarget = target.transform.GetComponent<Target>();
Run Code Online (Sandbox Code Playgroud)
是否可以在一行中投射或映射它?
首先映射它,然后获取第一个或默认值:
Target = hits
.Select(hit => hit.transform.GetComponent<Target>())
.FirstOrDefault(item => item != null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |