public static GameObject Spawn(this GameObject asset, uint unitId = 0) { var spawn = AssetProcess.Spawn <GameObject>(asset); var assetData = spawn.GetComponent <AssetData>(); if (unitId != 0) { if (assetData == null) { assetData = spawn.AddComponent <AssetData>(); } assetData.isSpawned = true; assetData.unitId = unitId; var unit = worldMgr.Unit.GetUnit(unitId); unit.AddData(assetData); } else { if (assetData != null) { assetData.isSpawned = true; } } return(spawn); }