云团视觉:用算法真实半径+透明度,随扩散渐大渐淡
This commit is contained in:
parent
d3295418b7
commit
8b71351a7b
1
.gitignore
vendored
1
.gitignore
vendored
@ -59,3 +59,4 @@ src/Unity/obj/
|
|||||||
src/Unity/Logs/
|
src/Unity/Logs/
|
||||||
src/Unity/UserSettings/
|
src/Unity/UserSettings/
|
||||||
unity_plugins/
|
unity_plugins/
|
||||||
|
nul
|
||||||
|
|||||||
@ -92,7 +92,10 @@ namespace CounterDrone.Unity
|
|||||||
if (snap.EntityType == EntityType.Cloud)
|
if (snap.EntityType == EntityType.Cloud)
|
||||||
{
|
{
|
||||||
float r = ParseCloudRadius(snap.StateData);
|
float r = ParseCloudRadius(snap.StateData);
|
||||||
|
float opacity = ParseCloudOpacity(snap.StateData);
|
||||||
go.transform.localScale = UVector3.one * r;
|
go.transform.localScale = UVector3.one * r;
|
||||||
|
var mat = go.GetComponent<Renderer>().material;
|
||||||
|
mat.color = new Color(1, 0, 0, opacity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,8 +107,8 @@ namespace CounterDrone.Unity
|
|||||||
var prefab = _cloudPrefab != null ? _cloudPrefab : GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
var prefab = _cloudPrefab != null ? _cloudPrefab : GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
||||||
var go = Instantiate(prefab, pos, Quaternion.identity);
|
var go = Instantiate(prefab, pos, Quaternion.identity);
|
||||||
go.name = cloud.Id;
|
go.name = cloud.Id;
|
||||||
go.transform.localScale = UVector3.one * 30f;
|
float r = cloud.Dispersion.Radius;
|
||||||
// 半透明红色
|
go.transform.localScale = UVector3.one * r;
|
||||||
var mat = go.GetComponent<Renderer>().material;
|
var mat = go.GetComponent<Renderer>().material;
|
||||||
mat.color = new Color(1, 0, 0, 0.3f);
|
mat.color = new Color(1, 0, 0, 0.3f);
|
||||||
_clouds[cloud.Id] = go;
|
_clouds[cloud.Id] = go;
|
||||||
@ -155,7 +158,17 @@ namespace CounterDrone.Unity
|
|||||||
_entityVisuals[drone.Id] = go;
|
_entityVisuals[drone.Id] = go;
|
||||||
}
|
}
|
||||||
|
|
||||||
private float ParseCloudRadius(string stateData)
|
private float ParseCloudOpacity(string stateData)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using var doc = JsonDocument.Parse(stateData);
|
||||||
|
if (doc.RootElement.TryGetProperty("opacity", out var o))
|
||||||
|
return o.GetSingle();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
return 0.5f;
|
||||||
|
}
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user