public override void UpdateModel() { if (ActionObjectMetadata.ObjectModel == null) { return; } Vector3?dimensions = null; switch (ActionObjectMetadata.ObjectModel.Type) { case ObjectModel.TypeEnum.Box: dimensions = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Box.SizeX, (float)ActionObjectMetadata.ObjectModel.Box.SizeY, (float)ActionObjectMetadata.ObjectModel.Box.SizeZ)); break; case ObjectModel.TypeEnum.Sphere: dimensions = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius)); break; case ObjectModel.TypeEnum.Cylinder: dimensions = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Height)); break; } if (dimensions != null) { Model.transform.localScale = new Vector3(dimensions.Value.x, dimensions.Value.y, dimensions.Value.z); } }
public void CreateModel() { if (ActionObjectMetadata.ObjectModel == null || ActionObjectMetadata.ObjectModel.Type == IO.Swagger.Model.ObjectModel.TypeEnum.None) { Model = Instantiate(CubePrefab, Visual.transform); Visual.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f); } else { switch (ActionObjectMetadata.ObjectModel.Type) { case IO.Swagger.Model.ObjectModel.TypeEnum.Box: Model = Instantiate(CubePrefab, Visual.transform); Visual.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Box.SizeX, (float)ActionObjectMetadata.ObjectModel.Box.SizeY, (float)ActionObjectMetadata.ObjectModel.Box.SizeZ)); break; case IO.Swagger.Model.ObjectModel.TypeEnum.Cylinder: Model = Instantiate(CylinderPrefab, Visual.transform); Visual.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Height, (float)ActionObjectMetadata.ObjectModel.Cylinder.Radius); break; case IO.Swagger.Model.ObjectModel.TypeEnum.Sphere: Model = Instantiate(SpherePrefab, Visual.transform); Visual.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius); break; default: Model = Instantiate(CubePrefab, Visual.transform); Visual.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f); break; } } if (IsRobot()) { Model.tag = "Robot"; } gameObject.GetComponent <BindParentToChild>().ChildToBind = Model; Model.GetComponent <OnClickCollider>().Target = gameObject; Model.transform.localScale = new Vector3(1, 1, 1); modelRenderer = Model.GetComponent <Renderer>(); outlineOnClick = gameObject.GetComponent <OutlineOnClick>(); outlineOnClick.InitRenderers(new List <Renderer>() { modelRenderer }); }
public override void CreateModel(CollisionModels customCollisionModels = null) { if (ActionObjectMetadata.ObjectModel == null || ActionObjectMetadata.ObjectModel.Type == IO.Swagger.Model.ObjectModel.TypeEnum.None) { Model = Instantiate(CubePrefab, Visual.transform); Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f); } else { switch (ActionObjectMetadata.ObjectModel.Type) { case IO.Swagger.Model.ObjectModel.TypeEnum.Box: Model = Instantiate(CubePrefab, Visual.transform); if (customCollisionModels == null) { Model.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Box.SizeX, (float)ActionObjectMetadata.ObjectModel.Box.SizeY, (float)ActionObjectMetadata.ObjectModel.Box.SizeZ)); } else { foreach (IO.Swagger.Model.Box box in customCollisionModels.Boxes) { if (box.Id == ActionObjectMetadata.Type) { Model.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)box.SizeX, (float)box.SizeY, (float)box.SizeZ)); break; } } } break; case IO.Swagger.Model.ObjectModel.TypeEnum.Cylinder: Model = Instantiate(CylinderPrefab, Visual.transform); if (customCollisionModels == null) { Model.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Height / 2, (float)ActionObjectMetadata.ObjectModel.Cylinder.Radius); } else { foreach (IO.Swagger.Model.Cylinder cylinder in customCollisionModels.Cylinders) { if (cylinder.Id == ActionObjectMetadata.Type) { Model.transform.localScale = new Vector3((float)cylinder.Radius, (float)cylinder.Height, (float)cylinder.Radius); break; } } } break; case IO.Swagger.Model.ObjectModel.TypeEnum.Sphere: Model = Instantiate(SpherePrefab, Visual.transform); if (customCollisionModels == null) { Model.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius); } else { foreach (IO.Swagger.Model.Sphere sphere in customCollisionModels.Spheres) { if (sphere.Id == ActionObjectMetadata.Type) { Model.transform.localScale = new Vector3((float)sphere.Radius, (float)sphere.Radius, (float)sphere.Radius); break; } } } break; case ObjectModel.TypeEnum.Mesh: MeshImporter.Instance.OnMeshImported += OnModelLoaded; MeshImporter.Instance.LoadModel(ActionObjectMetadata.ObjectModel.Mesh, GetId()); Model = Instantiate(CubePrefab, Visual.transform); Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f); break; default: Model = Instantiate(CubePrefab, Visual.transform); Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f); break; } } //if (IsRobot()) { // Model.tag = "Robot"; //} gameObject.GetComponent <BindParentToChild>().ChildToBind = Model; Collider = Model.GetComponent <Collider>(); Colliders.Add(Collider); Model.GetComponent <OnClickCollider>().Target = gameObject; outlineOnClick = gameObject.GetComponent <OutlineOnClick>(); aoRenderers.Clear(); aoRenderers.AddRange(Model.GetComponentsInChildren <Renderer>(true)); outlineOnClick.InitRenderers(aoRenderers); }
public override void CreateModel(CollisionModels customCollisionModels = null) { if (ActionObjectMetadata.ObjectModel == null || ActionObjectMetadata.ObjectModel.Type == IO.Swagger.Model.ObjectModel.TypeEnum.None) { Model = Instantiate(CubePrefab, Visual.transform); Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f); } else { switch (ActionObjectMetadata.ObjectModel.Type) { case IO.Swagger.Model.ObjectModel.TypeEnum.Box: Model = Instantiate(CubePrefab, Visual.transform); if (customCollisionModels == null) { Model.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)ActionObjectMetadata.ObjectModel.Box.SizeX, (float)ActionObjectMetadata.ObjectModel.Box.SizeY, (float)ActionObjectMetadata.ObjectModel.Box.SizeZ)); } else { foreach (IO.Swagger.Model.Box box in customCollisionModels.Boxes) { if (box.Id == ActionObjectMetadata.Type) { Model.transform.localScale = TransformConvertor.ROSToUnityScale(new Vector3((float)box.SizeX, (float)box.SizeY, (float)box.SizeZ)); break; } } } break; case IO.Swagger.Model.ObjectModel.TypeEnum.Cylinder: Model = Instantiate(CylinderPrefab, Visual.transform); if (customCollisionModels == null) { Model.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Cylinder.Radius, (float)ActionObjectMetadata.ObjectModel.Cylinder.Height / 2, (float)ActionObjectMetadata.ObjectModel.Cylinder.Radius); } else { foreach (IO.Swagger.Model.Cylinder cylinder in customCollisionModels.Cylinders) { if (cylinder.Id == ActionObjectMetadata.Type) { Model.transform.localScale = new Vector3((float)cylinder.Radius, (float)cylinder.Height, (float)cylinder.Radius); break; } } } break; case IO.Swagger.Model.ObjectModel.TypeEnum.Sphere: Model = Instantiate(SpherePrefab, Visual.transform); if (customCollisionModels == null) { Model.transform.localScale = new Vector3((float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius, (float)ActionObjectMetadata.ObjectModel.Sphere.Radius); } else { foreach (IO.Swagger.Model.Sphere sphere in customCollisionModels.Spheres) { if (sphere.Id == ActionObjectMetadata.Type) { Model.transform.localScale = new Vector3((float)sphere.Radius, (float)sphere.Radius, (float)sphere.Radius); break; } } } break; default: Model = Instantiate(CubePrefab, Visual.transform); Model.transform.localScale = new Vector3(0.05f, 0.01f, 0.05f); break; } } if (IsRobot()) { Model.tag = "Robot"; } gameObject.GetComponent <BindParentToChild>().ChildToBind = Model; Collider = Model.GetComponent <Collider>(); Model.GetComponent <OnClickCollider>().Target = gameObject; modelRenderer = Model.GetComponent <Renderer>(); modelMaterial = modelRenderer.material; outlineOnClick = gameObject.GetComponent <OutlineOnClick>(); outlineOnClick.InitRenderers(new List <Renderer>() { modelRenderer }); Model.AddComponent <GizmoOutlineHandler>().OutlineOnClick = outlineOnClick; }