에셋불러오기 후 agv 자동생성. #95
8
Assets/Models/StackerCrane.meta
Normal file
8
Assets/Models/StackerCrane.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1301507e30409fb4ea27ca435f42a209
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
5422
Assets/Models/StackerCrane/StackerCrane.fbx
Normal file
5422
Assets/Models/StackerCrane/StackerCrane.fbx
Normal file
File diff suppressed because it is too large
Load Diff
107
Assets/Models/StackerCrane/StackerCrane.fbx.meta
Normal file
107
Assets/Models/StackerCrane/StackerCrane.fbx.meta
Normal file
@@ -0,0 +1,107 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c9dceccac23106a4ba09d4cd1ff0646b
|
||||
ModelImporter:
|
||||
serializedVersion: 22200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
materialLocation: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
resampleCurves: 1
|
||||
optimizeGameObjects: 0
|
||||
removeConstantScaleCurves: 0
|
||||
motionNodeName:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
importAnimatedCustomProperties: 0
|
||||
importConstraints: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: 0.5
|
||||
animationPositionError: 0.5
|
||||
animationScaleError: 0.5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
extraUserProperties: []
|
||||
clipAnimations: []
|
||||
isReadable: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importPhysicalCameras: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
nodeNameCollisionStrategy: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
optimizeBones: 1
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
strictVertexDataChecks: 0
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 3
|
||||
normalCalculationMode: 4
|
||||
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||
blendShapeNormalImportMode: 1
|
||||
normalSmoothingSource: 0
|
||||
referencedClips: []
|
||||
importAnimation: 1
|
||||
humanDescription:
|
||||
serializedVersion: 3
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: 0.5
|
||||
foreArmTwist: 0.5
|
||||
upperLegTwist: 0.5
|
||||
legTwist: 0.5
|
||||
armStretch: 0.05
|
||||
legStretch: 0.05
|
||||
feetSpacing: 0
|
||||
globalScale: 1
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
importBlendShapeDeformPercent: 1
|
||||
remapMaterialsIfMaterialImportModeIsNone: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using System.IO;
|
||||
using UnityEngine.Events;
|
||||
@@ -40,7 +40,6 @@ namespace Studio.AssetTool
|
||||
sharedMaterial = new SharedMaterial();
|
||||
messagePacker = new MessagePackFileManager<SaveData>();
|
||||
messagePacker.Initialize();
|
||||
|
||||
identifier = string.IsNullOrEmpty(identifier) ? "defaultAssetData" : identifier;
|
||||
fbxAnchor = new GameObject("LocalAssetDataAnchor").transform;
|
||||
}
|
||||
|
||||
@@ -25,5 +25,15 @@ namespace Studio.Conifg
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
public static Dictionary<string,CustomAssetData> AssetSettings
|
||||
{
|
||||
get
|
||||
{
|
||||
var canvas_Popup = EventConnector.instance.GetCanvas<Canvas_Popup>();
|
||||
var result = canvas_Popup.panel_3dfactorysetting.GetAssetDatas();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,22 +4,28 @@ using System.Linq;
|
||||
using UnityEngine;
|
||||
using Studio.Dynamic.TwinObject;
|
||||
using Studio.Core;
|
||||
using Studio.Conifg;
|
||||
|
||||
namespace Studio.Dynamic.M
|
||||
{
|
||||
public class AGVManager : UnitySingleton<AGVManager>
|
||||
{
|
||||
private AGV prf_AGV;
|
||||
public HashSet<AGV> agvs = new();
|
||||
private GameObject prf_AGV;
|
||||
private HashSet<AGV> agvs = new();
|
||||
public float AGVMoveSpeed;
|
||||
public float AGVRotateSpeed;
|
||||
public Queue<Dictionary<string, Dictionary<string, string>>> createAgvs = new();
|
||||
|
||||
public void Init()
|
||||
|
||||
public void Init(string type)
|
||||
{
|
||||
prf_AGV = Resources.Load<AGV>("TestAGV");
|
||||
StudioService.instance.AddTypeListener("AGV", OnDataUpdate);
|
||||
StudioService.instance.AddTypeIdListener("AGV");
|
||||
var assets = ConfigConnected.AssetSettings;
|
||||
prf_AGV = assets[type].loadedObject;
|
||||
if (prf_AGV == null)
|
||||
{
|
||||
//todo::팝업메시지 나주엥 설정....
|
||||
return;
|
||||
}
|
||||
StudioService.instance.AddTypeListener(type, OnDataUpdate);
|
||||
StudioService.instance.AddTypeIdListener(type);
|
||||
}
|
||||
/// <summary>
|
||||
/// MQTT
|
||||
@@ -45,7 +51,8 @@ namespace Studio.Dynamic.M
|
||||
|
||||
private AGV CreateAGV(string type, string id ,Dictionary<string,string> entity)
|
||||
{
|
||||
var agv = Instantiate<AGV>(prf_AGV,transform);
|
||||
var agv = Instantiate<GameObject>(prf_AGV,transform).AddComponent<AGV>();
|
||||
agv.gameObject.SetActive(true);
|
||||
agv.transform.position = Vector3.zero;
|
||||
agv.name = id;
|
||||
agv.SetMoveSpeed(AGVMoveSpeed);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine;
|
||||
using XRLib.UI;
|
||||
using UnityEngine.UI;
|
||||
using TMPro;
|
||||
@@ -114,6 +114,18 @@ namespace Studio
|
||||
}
|
||||
return dynamic3DModelSetting;
|
||||
}
|
||||
|
||||
public Dictionary<string,CustomAssetData> GetAssetDatas()
|
||||
{
|
||||
var datas = new Dictionary<string, CustomAssetData>();
|
||||
foreach (var modelData in dynamicObjectItems)
|
||||
{
|
||||
var splitdata = modelData.GetDynamic3DModelConnection().dataName.Split('/');
|
||||
var topic = splitdata[splitdata.Length - 1];
|
||||
datas.Add(topic, modelData.selectedModel);
|
||||
}
|
||||
return datas;
|
||||
}
|
||||
public void SetDynamic3DModelSetting(Dynamic3DModelSetting saveModelDatas)
|
||||
{
|
||||
foreach(var item in dynamicObjectItems)
|
||||
|
||||
@@ -29,9 +29,8 @@ namespace Studio
|
||||
{
|
||||
StudioService.instance.ConnectMQTT(mqtt.domain,mqtt.port,mqtt.topics);
|
||||
}
|
||||
testcrane.Init("STOCKER_CRANE");
|
||||
AGVManager.instance.Init();
|
||||
|
||||
//testcrane.Init("STOCKER_CRANE");
|
||||
//AGVManager.instance.Init("AGV");
|
||||
}
|
||||
private async void Test()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user