其他分享
首页 > 其他分享> > CSV Data &linq 示例unity脚本

CSV Data &linq 示例unity脚本

作者:互联网

 1 using UnityEngine;
 2 using System.Collections;
 3 using System.Text.RegularExpressions;
 4 using System.Linq;
 5 //----------------------------------------------------------
 6 public class LINQCSV : MonoBehaviour 
 7 {
 8     //----------------------------------------------------------
 9     // Use this for initialization
10     void Start () 
11     {
12         //Generate female name
13         //Regular Expression Search Pattern
14         //Find all names prefixed with 'female:' but do not include the prefix in the results
15         string search = @"(?<=\bfemale:)\w+\b";
16 
17         //CSV Data - names of characters
18         string CSVData = "male:john,male:tom,male:bob,female:betty,female:jessica,male:dirk";
19 
20         //Perform regular expression to retrieve all names prefixed with female. Do not include the prefix 'female:' within the results
21         string[] FemaleNames = (from Match m in Regex.Matches(CSVData, search)
22                 select m.Groups[0].Value).ToArray();
23 
24         //Print all female names in results
25         foreach(string S in FemaleNames)
26             Debug.Log (S);
27 
28         //Now pick a random female name from collection
29         string RandomFemaleName = FemaleNames[Random.Range(0, FemaleNames.Length)];
30     }
31     //----------------------------------------------------------
32 }
 1 using UnityEngine;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 //-------------------------------------------------
 6 public class EnemyQuery : MonoBehaviour 
 7 {
 8     //-------------------------------------------------
 9     //Get list of enemies matching search criteria
10     public void FindEnemiesOldWay()
11     {
12         //Get all enemies in scene
13         Enemy[] Enemies = Object.FindObjectsOfType<Enemy>();
14 
15         //Filtered Enemies
16         List<Enemy> FilteredData = new List<Enemy>();
17 
18         //Loop through enemies and check
19         foreach(Enemy E in Enemies)
20         {
21             if(E.Health <= 50 && E.Defense < 5)
22             {
23                 //Found appropriate enemy
24                 FilteredData.Add (E);
25             }
26         }
27 
28         //Now we can process filtered data
29         //All items in FilteredData match search criteria
30         foreach(Enemy E in FilteredData)
31         {
32             //Process Enemy E
33             Debug.Log (E.name);
34         }
35     }
36     //-------------------------------------------------
37     public void FindEnemiesLinqWay()
38     {
39         //Get all enemies in scene
40         Enemy[] Enemies = Object.FindObjectsOfType<Enemy>();
41 
42         //Perform search
43         Enemy[] FilteredData = (from EnemyChar in Enemies
44             where EnemyChar.Health <= 50 && EnemyChar.Defense < 5
45                           select EnemyChar).ToArray();
46 
47         //Now we can process filtered data
48         //All items in FilteredData match search criteria
49         foreach(Enemy E in FilteredData)
50         {
51             //Process Enemy E
52             Debug.Log (E.name);
53         }
54     }
55     //-------------------------------------------------
56 }

 

标签:search,示例,System,linq,unity,Collections,using,enemies,Enemies
来源: https://www.cnblogs.com/lucater/p/12500376.html