拆分 DefaultData.cs:Spec 类各自独立文件

- FireUnitSpec → Models/FireUnitSpec.cs
- DroneSpec → Models/DroneSpec.cs
- SensorSpec → Models/SensorSpec.cs
- EnvironmentSpec → Models/EnvironmentSpec.cs
- FormationTemplate → Models/FormationTemplate.cs
- RouteTemplate → Models/RouteTemplate.cs
- DefaultData.cs 仅保留 DefaultData 加载类
- 238 测试全过
This commit is contained in:
tian 2026-06-19 10:21:41 +08:00
parent dbe6808df7
commit f6d3f1bdb4
8 changed files with 573 additions and 267 deletions

View File

@ -26,7 +26,6 @@ namespace CounterDrone.Core
[System.Text.Json.Serialization.JsonPropertyName("weather")]
public List<EnvironmentSpec> Environments { get; set; } = new();
/// <summary>从 data/defaults.json 加载。文件缺失或解析失败即抛异常。</summary>
public static DefaultData Load(IPathProvider paths)
{
var jsonPath = Path.Combine(paths.GetDataRoot(), "defaults.json");
@ -41,7 +40,6 @@ namespace CounterDrone.Core
return data;
}
/// <summary>从 JSON 字符串解析(测试用)</summary>
public static DefaultData FromJson(string json)
{
var opts = new JsonSerializerOptions { PropertyNameCaseInsensitive = true };
@ -69,205 +67,4 @@ namespace CounterDrone.Core
data.Sensors = new();
}
}
/// <summary>编队模板</summary>
public class FormationTemplate
{
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public int FormationMode { get; set; }
public int LateralCount { get; set; } = 1;
public int LongitudinalCount { get; set; } = 1;
public double LateralSpacing { get; set; }
public double LongitudinalSpacing { get; set; }
public int LateralAxis { get; set; } = 2; // 0=X, 1=Y, 2=Z
public int LongitudinalAxis { get; set; } = 0; // 0=X, 1=Y, 2=Z
public RoutePlan ToRoutePlan()
{
return new RoutePlan
{
FormationMode = FormationMode,
LateralCount = LateralCount,
LongitudinalCount = LongitudinalCount,
LateralSpacing = LateralSpacing,
LongitudinalSpacing = LongitudinalSpacing,
LateralAxis = LateralAxis,
LongitudinalAxis = LongitudinalAxis,
};
}
}
/// <summary>火力单元规格(基础数据模板)</summary>
[SQLite.Table("FireUnitSpec")]
public class FireUnitSpec
{
[SQLite.PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public int PlatformType { get; set; }
public int GunCount { get; set; } = 1;
public int ChannelsPerGun { get; set; } = 1;
public double ChannelInterval { get; set; } = 1.0;
public double Cooldown { get; set; } = 5.0;
public double AmmoChangeTime { get; set; } = 30.0;
public double MuzzleVelocity { get; set; }
public double CruiseSpeed { get; set; }
public double ReleaseAltitude { get; set; }
/// <summary>3D 模型 IDFK → ModelInfoUnity 可视化用</summary>
public string ModelId { get; set; } = "";
[SQLite.Ignore]
public List<int> AmmoTypes { get; set; } = new();
public double RadarRange { get; set; }
public double EORange { get; set; }
public double IRRange { get; set; }
// 3D 球冠几何(缺失时退化 2D
public double? MinElevation { get; set; }
public double? MaxElevation { get; set; }
public double? MinDetectAlt { get; set; }
public double? MaxDetectAlt { get; set; }
public ScenarioUnit ToScenarioUnit(AerosolType ammoType, int quantity,
double posX, double posY, double posZ)
{
return new ScenarioUnit
{
FireUnitSpecId = Id,
EquipmentRole = (int)Models.EquipmentRole.LaunchPlatform,
Quantity = quantity,
PositionX = posX,
PositionY = posY,
PositionZ = posZ,
AerosolType = (int)ammoType,
MunitionCount = GunCount * ChannelsPerGun * quantity,
};
}
}
/// <summary>无人机规格(基础数据模板)</summary>
[SQLite.Table("DroneSpec")]
public class DroneSpec
{
[SQLite.PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public int DroneType { get; set; }
/// <summary>型号名称(非 3D 模型文件。3D 模型引用见 ModelId</summary>
public string Model { get; set; } = "";
public string Description { get; set; } = "";
public int PowerType { get; set; }
public double Wingspan { get; set; }
public double TypicalSpeed { get; set; }
public double TypicalAltitude { get; set; }
/// <summary>3D 模型 IDFK → ModelInfoUnity 可视化用</summary>
public string ModelId { get; set; } = "";
public ScenarioDrone ToScenarioDrone(string waveId = "default")
{
return new ScenarioDrone
{
DroneSpecId = Id,
WaveId = waveId,
Quantity = 1,
};
}
}
/// <summary>传感器规格(基础数据模板)</summary>
[SQLite.Table("SensorSpec")]
public class SensorSpec
{
[SQLite.PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public double RadarRange { get; set; }
public double EORange { get; set; }
public double IRRange { get; set; }
public double Accuracy { get; set; } = 50.0;
/// <summary>3D 模型 IDFK → ModelInfoUnity 可视化用</summary>
public string ModelId { get; set; } = "";
// 3D 球冠几何(缺失时退化 2D
public double? MinElevation { get; set; }
public double? MaxElevation { get; set; }
public double? MinDetectAlt { get; set; }
public double? MaxDetectAlt { get; set; }
public ScenarioUnit ToScenarioUnit(double posX, double posY, double posZ)
{
return new ScenarioUnit
{
SensorSpecId = Id,
EquipmentRole = (int)Models.EquipmentRole.Detection,
Quantity = 1,
PositionX = posX,
PositionY = posY,
PositionZ = posZ,
};
}
}
/// <summary>环境规格(基础数据模板)</summary>
[SQLite.Table("EnvironmentSpec")]
public class EnvironmentSpec
{
[SQLite.PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public int WeatherType { get; set; }
public double WindSpeed { get; set; }
public int WindDirection { get; set; }
public double Temperature { get; set; } = 20.0;
public double Humidity { get; set; } = 60.0;
public double Pressure { get; set; } = 1013.0;
public double Visibility { get; set; } = 5000.0;
public CombatScene ToCombatScene()
{
return new CombatScene
{
WeatherType = WeatherType,
WindSpeed = WindSpeed,
WindDirection = WindDirection,
Temperature = Temperature,
Humidity = Humidity,
Pressure = Pressure,
Visibility = Visibility,
};
}
}
/// <summary>航线模板(基础数据模板)</summary>
[SQLite.Table("RouteTemplate")]
public class RouteTemplate
{
[SQLite.PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
/// <summary>航路点 JSONWaypointCoord 序列化SQLite 存储用</summary>
public string WaypointsJson { get; set; } = "[]";
[SQLite.Ignore]
public List<WaypointCoord> Waypoints { get; set; } = new();
public List<Waypoint> ToWaypoints(double speed)
{
var list = new List<Waypoint>();
foreach (var w in Waypoints)
list.Add(new Waypoint
{
PosX = w.X, PosY = w.Y, PosZ = w.Z,
Altitude = w.Y, Speed = speed,
});
return list;
}
}
public class WaypointCoord
{
public double X { get; set; }
public double Y { get; set; }
public double Z { get; set; }
}
}

View File

@ -0,0 +1,35 @@
using CounterDrone.Core.Models;
using SQLite;
namespace CounterDrone.Core
{
/// <summary>无人机规格(基础数据模板)</summary>
[Table("DroneSpec")]
public class DroneSpec
{
[PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public int DroneType { get; set; }
/// <summary>型号名称(非 3D 模型文件。3D 模型引用见 ModelId</summary>
public string Model { get; set; } = "";
public string Description { get; set; } = "";
public int PowerType { get; set; }
public double Wingspan { get; set; }
public double TypicalSpeed { get; set; }
public double TypicalAltitude { get; set; }
/// <summary>3D 模型 IDFK → ModelInfoUnity 可视化用</summary>
public string ModelId { get; set; } = "";
public ScenarioDrone ToScenarioDrone(string waveId = "default")
{
return new ScenarioDrone
{
DroneSpecId = Id,
WaveId = waveId,
Quantity = 1,
};
}
}
}

View File

@ -0,0 +1,35 @@
using CounterDrone.Core.Models;
using SQLite;
namespace CounterDrone.Core
{
/// <summary>环境规格(基础数据模板)</summary>
[Table("EnvironmentSpec")]
public class EnvironmentSpec
{
[PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public int WeatherType { get; set; }
public double WindSpeed { get; set; }
public int WindDirection { get; set; }
public double Temperature { get; set; } = 20.0;
public double Humidity { get; set; } = 60.0;
public double Pressure { get; set; } = 1013.0;
public double Visibility { get; set; } = 5000.0;
public CombatScene ToCombatScene()
{
return new CombatScene
{
WeatherType = WeatherType,
WindSpeed = WindSpeed,
WindDirection = WindDirection,
Temperature = Temperature,
Humidity = Humidity,
Pressure = Pressure,
Visibility = Visibility,
};
}
}
}

View File

@ -0,0 +1,52 @@
using System.Collections.Generic;
using CounterDrone.Core.Models;
using SQLite;
namespace CounterDrone.Core
{
/// <summary>火力单元规格(基础数据模板)</summary>
[Table("FireUnitSpec")]
public class FireUnitSpec
{
[PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public int PlatformType { get; set; }
public int GunCount { get; set; } = 1;
public int ChannelsPerGun { get; set; } = 1;
public double ChannelInterval { get; set; } = 1.0;
public double Cooldown { get; set; } = 5.0;
public double AmmoChangeTime { get; set; } = 30.0;
public double MuzzleVelocity { get; set; }
public double CruiseSpeed { get; set; }
public double ReleaseAltitude { get; set; }
/// <summary>3D 模型 IDFK → ModelInfoUnity 可视化用</summary>
public string ModelId { get; set; } = "";
[Ignore]
public List<int> AmmoTypes { get; set; } = new();
public double RadarRange { get; set; }
public double EORange { get; set; }
public double IRRange { get; set; }
public double? MinElevation { get; set; }
public double? MaxElevation { get; set; }
public double? MinDetectAlt { get; set; }
public double? MaxDetectAlt { get; set; }
public ScenarioUnit ToScenarioUnit(AerosolType ammoType, int quantity,
double posX, double posY, double posZ)
{
return new ScenarioUnit
{
FireUnitSpecId = Id,
EquipmentRole = (int)Models.EquipmentRole.LaunchPlatform,
Quantity = quantity,
PositionX = posX,
PositionY = posY,
PositionZ = posZ,
AerosolType = (int)ammoType,
MunitionCount = GunCount * ChannelsPerGun * quantity,
};
}
}
}

View File

@ -0,0 +1,32 @@
using CounterDrone.Core.Models;
namespace CounterDrone.Core
{
/// <summary>编队模板</summary>
public class FormationTemplate
{
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public int FormationMode { get; set; }
public int LateralCount { get; set; } = 1;
public int LongitudinalCount { get; set; } = 1;
public double LateralSpacing { get; set; }
public double LongitudinalSpacing { get; set; }
public int LateralAxis { get; set; } = 2;
public int LongitudinalAxis { get; set; } = 0;
public RoutePlan ToRoutePlan()
{
return new RoutePlan
{
FormationMode = FormationMode,
LateralCount = LateralCount,
LongitudinalCount = LongitudinalCount,
LateralSpacing = LateralSpacing,
LongitudinalSpacing = LongitudinalSpacing,
LateralAxis = LateralAxis,
LongitudinalAxis = LongitudinalAxis,
};
}
}
}

View File

@ -0,0 +1,37 @@
using System.Collections.Generic;
using CounterDrone.Core.Models;
using SQLite;
namespace CounterDrone.Core
{
/// <summary>航线模板(基础数据模板)</summary>
[Table("RouteTemplate")]
public class RouteTemplate
{
[PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public string WaypointsJson { get; set; } = "[]";
[Ignore]
public List<WaypointCoord> Waypoints { get; set; } = new();
public List<Waypoint> ToWaypoints(double speed)
{
var list = new List<Waypoint>();
foreach (var w in Waypoints)
list.Add(new Waypoint
{
PosX = w.X, PosY = w.Y, PosZ = w.Z,
Altitude = w.Y, Speed = speed,
});
return list;
}
}
public class WaypointCoord
{
public double X { get; set; }
public double Y { get; set; }
public double Z { get; set; }
}
}

View File

@ -0,0 +1,38 @@
using CounterDrone.Core.Models;
using SQLite;
namespace CounterDrone.Core
{
/// <summary>传感器规格(基础数据模板)</summary>
[Table("SensorSpec")]
public class SensorSpec
{
[PrimaryKey]
public string Id { get; set; } = "";
public string Name { get; set; } = "";
public double RadarRange { get; set; }
public double EORange { get; set; }
public double IRRange { get; set; }
public double Accuracy { get; set; } = 50.0;
/// <summary>3D 模型 IDFK → ModelInfoUnity 可视化用</summary>
public string ModelId { get; set; } = "";
public double? MinElevation { get; set; }
public double? MaxElevation { get; set; }
public double? MinDetectAlt { get; set; }
public double? MaxDetectAlt { get; set; }
public ScenarioUnit ToScenarioUnit(double posX, double posY, double posZ)
{
return new ScenarioUnit
{
SensorSpecId = Id,
EquipmentRole = (int)Models.EquipmentRole.Detection,
Quantity = 1,
PositionX = posX,
PositionY = posY,
PositionZ = posZ,
};
}
}
}

View File

@ -122,7 +122,7 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &504813050
--- !u!1 &17412644
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -130,53 +130,9 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 504813052}
- component: {fileID: 504813051}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &504813051
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 504813050}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 22fe139181bc96d448638e8f096555e7, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &504813052
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 504813050}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &596712395
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 596712398}
- component: {fileID: 596712397}
- component: {fileID: 596712396}
- component: {fileID: 17412647}
- component: {fileID: 17412646}
- component: {fileID: 17412645}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
@ -184,21 +140,21 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &596712396
--- !u!81 &17412645
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 596712395}
m_GameObject: {fileID: 17412644}
m_Enabled: 1
--- !u!20 &596712397
--- !u!20 &17412646
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 596712395}
m_GameObject: {fileID: 17412644}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
@ -243,13 +199,13 @@ Camera:
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &596712398
--- !u!4 &17412647
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 596712395}
m_GameObject: {fileID: 17412644}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
@ -258,7 +214,7 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &814563400
--- !u!1 &464420036
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -266,8 +222,8 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 814563402}
- component: {fileID: 814563401}
- component: {fileID: 464420038}
- component: {fileID: 464420037}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
@ -275,13 +231,13 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &814563401
--- !u!108 &464420037
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 814563400}
m_GameObject: {fileID: 464420036}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
@ -337,13 +293,13 @@ Light:
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &814563402
--- !u!4 &464420038
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 814563400}
m_GameObject: {fileID: 464420036}
serializedVersion: 2
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
@ -352,10 +308,334 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &579005272
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 579005279}
- component: {fileID: 579005278}
- component: {fileID: 579005277}
- component: {fileID: 579005276}
- component: {fileID: 579005275}
- component: {fileID: 579005274}
- component: {fileID: 579005273}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &579005273
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 579005272}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6ddc21c353c72cc449038de2121fbd06, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &579005274
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 579005272}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 11d882d30e6a0d247964f54d1b93e758, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &579005275
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 579005272}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 94491e9f66d487e409c6ba224f1b3797, type: 3}
m_Name:
m_EditorClassIdentifier:
_dronePrefab: {fileID: 0}
_cloudPrefab: {fileID: 0}
_platformPrefab: {fileID: 0}
--- !u!114 &579005276
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 579005272}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b626c791511d1d3479e0b08532616aef, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &579005277
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 579005272}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5712699a3dcc335408f0df9b5b6a973f, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &579005278
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 579005272}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 22fe139181bc96d448638e8f096555e7, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &579005279
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 579005272}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -17.3211, y: 8.836099, z: 11.135693}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1215977701
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1215977705}
- component: {fileID: 1215977704}
- component: {fileID: 1215977703}
- component: {fileID: 1215977702}
m_Layer: 0
m_Name: drone_1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!23 &1215977702
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1215977701}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &1215977703
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1215977701}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!33 &1215977704
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1215977701}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &1215977705
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1215977701}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 500, z: 0}
m_LocalScale: {x: 50, y: 50, z: 50}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1690208463
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1690208467}
- component: {fileID: 1690208466}
- component: {fileID: 1690208465}
- component: {fileID: 1690208464}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!23 &1690208464
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1690208463}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &1690208465
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1690208463}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!33 &1690208466
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1690208463}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &1690208467
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1690208463}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 596712398}
- {fileID: 814563402}
- {fileID: 504813052}
- {fileID: 17412647}
- {fileID: 464420038}
- {fileID: 579005279}
- {fileID: 1690208467}
- {fileID: 1215977705}