public void Start() { ProceduralGalaxyParameters parameters = new Procedural.Galaxy.ProceduralGalaxyParameters(); string[] prefabs = { "Sprites/prefab_star_particle", "Sprites/prefab_star_particle_red", "Sprites/prefab_star_particle_blue", "Sprites/prefab_star_particle_deep_red" }; parameters.maxStarTypes = prefabs.Length; parameters.referenceAssetTexturePath = this.referenceAssetTexturePath; parameters.galaxySize = this.galaxySize; parameters.sectorSize = this.sectorSize; parameters.maxStarCountPerSector = this.maxStarCountPerSector; parameters.minDensity = this.minDensity; ProceduralGalaxyGenerator generator = new Procedural.Galaxy.ProceduralGalaxyGenerator(parameters); List <ProceduralGalaxyGenerator.Result> result = generator.Generate(); StarSystemNameGenerator starSystemNameGenerator = new StarSystemNameGenerator(File.ReadAllLines("C:\\Parts\\star_parts.txt")); foreach (ProceduralGalaxyGenerator.Result rst in result) { GameObject obj = UnityEngine.Object.Instantiate(Resources.Load(prefabs[rst.type]) as GameObject) as GameObject; obj.transform.position = rst.position; SphereCollider collider = obj.AddComponent <SphereCollider>(); collider.radius = 1.0f; StarSystemInfo info = obj.AddComponent <StarSystemInfo>(); uint hid = ((uint)Math.Floor(obj.transform.position.x) * 73856093) ^ ((uint)Math.Floor(obj.transform.position.y) * 19349663) ^ ((uint)Math.Floor(obj.transform.position.z) * 83492791); FastRandom.SetSeed(hid); info.planetCount = FastRandom.Next(8); info.systemName = starSystemNameGenerator.Generate(FastRandom.Next()); } }
public void Update() { if (Input.GetMouseButtonDown(0)) { Vector3 mp = Input.mousePosition; Camera camera = cameraObject.GetComponent <Camera>(); Ray ray = camera.ScreenPointToRay(mp); RaycastHit hit; if (Physics.Raycast(ray, out hit, 5000.0f)) { StarSystemInfo info = hit.collider.gameObject.GetComponent <StarSystemInfo>(); Debug.Log("system=" + info.systemName + ", planets=" + info.planetCount); } } }