forked from cgvr/DeltaVR
printer input hole animation
This commit is contained in:
@@ -1,81 +1,5 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!1 &191445694185635432
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 5366069888055802935}
|
|
||||||
- component: {fileID: 3859184247018527702}
|
|
||||||
- component: {fileID: 4706461719203293390}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Image
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!224 &5366069888055802935
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 191445694185635432}
|
|
||||||
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: 9089378608032997654}
|
|
||||||
m_RootOrder: -1
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
|
||||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
|
||||||
m_SizeDelta: {x: 0.35, y: 0.35}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!222 &3859184247018527702
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 191445694185635432}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!114 &4706461719203293390
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 191445694185635432}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_RaycastTarget: 1
|
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_Maskable: 1
|
|
||||||
m_OnCullStateChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_Sprite: {fileID: 0}
|
|
||||||
m_Type: 0
|
|
||||||
m_PreserveAspect: 0
|
|
||||||
m_FillCenter: 1
|
|
||||||
m_FillMethod: 4
|
|
||||||
m_FillAmount: 1
|
|
||||||
m_FillClockwise: 1
|
|
||||||
m_FillOrigin: 0
|
|
||||||
m_UseSpriteMesh: 0
|
|
||||||
m_PixelsPerUnitMultiplier: 1
|
|
||||||
--- !u!1 &1729028776279376009
|
--- !u!1 &1729028776279376009
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -88,7 +12,7 @@ GameObject:
|
|||||||
- component: {fileID: 7594134409976187304}
|
- component: {fileID: 7594134409976187304}
|
||||||
- component: {fileID: 1297641575955202044}
|
- component: {fileID: 1297641575955202044}
|
||||||
- component: {fileID: 6521999952126795650}
|
- component: {fileID: 6521999952126795650}
|
||||||
m_Layer: 0
|
m_Layer: 2
|
||||||
m_Name: Printable
|
m_Name: Printable
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
@@ -107,8 +31,8 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 9089378608032997654}
|
|
||||||
- {fileID: 3957909802885323975}
|
- {fileID: 3957909802885323975}
|
||||||
|
- {fileID: 3252674962452689824}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
@@ -287,7 +211,7 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: bb8ba6b5820955f4a95511b55c3a8db9, type: 3}
|
m_Script: {fileID: 11500000, guid: bb8ba6b5820955f4a95511b55c3a8db9, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &6791306317367082968
|
--- !u!1 &2119860429913564602
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
@@ -295,10 +219,10 @@ GameObject:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 9089378608032997654}
|
- component: {fileID: 3252674962452689824}
|
||||||
- component: {fileID: 3612923806949016747}
|
- component: {fileID: 6732376546868400302}
|
||||||
- component: {fileID: 5397926117381239953}
|
- component: {fileID: 668304854638700674}
|
||||||
- component: {fileID: 4316554082218252814}
|
- component: {fileID: 6488625860246538072}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: ImageDisplayCanvas
|
m_Name: ImageDisplayCanvas
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -306,34 +230,34 @@ GameObject:
|
|||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 1
|
||||||
--- !u!224 &9089378608032997654
|
--- !u!224 &3252674962452689824
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 6791306317367082968}
|
m_GameObject: {fileID: 2119860429913564602}
|
||||||
m_LocalRotation: {x: 0, y: -0.7071068, z: -0.7071068, w: 0}
|
m_LocalRotation: {x: -0.49999997, y: -0.5000005, z: 0.49999997, w: -0.49999958}
|
||||||
m_LocalPosition: {x: 0, y: 0, z: -0.0016155243}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 5366069888055802935}
|
- {fileID: 5419759324473382426}
|
||||||
m_Father: {fileID: 3870989277732630730}
|
m_Father: {fileID: 3870989277732630730}
|
||||||
m_RootOrder: -1
|
m_RootOrder: -1
|
||||||
m_LocalEulerAnglesHint: {x: 270, y: 0, z: 180}
|
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 270}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: -0, y: 0.015545189}
|
m_AnchoredPosition: {x: 0, y: 0.0141}
|
||||||
m_SizeDelta: {x: 100, y: 100}
|
m_SizeDelta: {x: 100, y: 100}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!223 &3612923806949016747
|
--- !u!223 &6732376546868400302
|
||||||
Canvas:
|
Canvas:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 6791306317367082968}
|
m_GameObject: {fileID: 2119860429913564602}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
serializedVersion: 3
|
serializedVersion: 3
|
||||||
m_RenderMode: 2
|
m_RenderMode: 2
|
||||||
@@ -349,13 +273,13 @@ Canvas:
|
|||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
m_TargetDisplay: 0
|
m_TargetDisplay: 0
|
||||||
--- !u!114 &5397926117381239953
|
--- !u!114 &668304854638700674
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 6791306317367082968}
|
m_GameObject: {fileID: 2119860429913564602}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||||
@@ -372,13 +296,13 @@ MonoBehaviour:
|
|||||||
m_DefaultSpriteDPI: 96
|
m_DefaultSpriteDPI: 96
|
||||||
m_DynamicPixelsPerUnit: 1
|
m_DynamicPixelsPerUnit: 1
|
||||||
m_PresetInfoIsWorld: 1
|
m_PresetInfoIsWorld: 1
|
||||||
--- !u!114 &4316554082218252814
|
--- !u!114 &6488625860246538072
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 6791306317367082968}
|
m_GameObject: {fileID: 2119860429913564602}
|
||||||
m_Enabled: 1
|
m_Enabled: 1
|
||||||
m_EditorHideFlags: 0
|
m_EditorHideFlags: 0
|
||||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||||
@@ -389,6 +313,82 @@ MonoBehaviour:
|
|||||||
m_BlockingMask:
|
m_BlockingMask:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 4294967295
|
m_Bits: 4294967295
|
||||||
|
--- !u!1 &4848143069676538940
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5419759324473382426}
|
||||||
|
- component: {fileID: 8399332010298584884}
|
||||||
|
- component: {fileID: 5040108080439486778}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: Image
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!224 &5419759324473382426
|
||||||
|
RectTransform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4848143069676538940}
|
||||||
|
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: 3252674962452689824}
|
||||||
|
m_RootOrder: -1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||||
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
|
m_SizeDelta: {x: 0.4, y: 0.4}
|
||||||
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
|
--- !u!222 &8399332010298584884
|
||||||
|
CanvasRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4848143069676538940}
|
||||||
|
m_CullTransparentMesh: 1
|
||||||
|
--- !u!114 &5040108080439486778
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4848143069676538940}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_RaycastTarget: 1
|
||||||
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
m_Maskable: 1
|
||||||
|
m_OnCullStateChanged:
|
||||||
|
m_PersistentCalls:
|
||||||
|
m_Calls: []
|
||||||
|
m_Sprite: {fileID: 0}
|
||||||
|
m_Type: 0
|
||||||
|
m_PreserveAspect: 0
|
||||||
|
m_FillCenter: 1
|
||||||
|
m_FillMethod: 4
|
||||||
|
m_FillAmount: 1
|
||||||
|
m_FillClockwise: 1
|
||||||
|
m_FillOrigin: 0
|
||||||
|
m_UseSpriteMesh: 0
|
||||||
|
m_PixelsPerUnitMultiplier: 1
|
||||||
--- !u!1 &8445441351388109183
|
--- !u!1 &8445441351388109183
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -401,7 +401,7 @@ GameObject:
|
|||||||
- component: {fileID: 4361987431377336869}
|
- component: {fileID: 4361987431377336869}
|
||||||
- component: {fileID: 3411055828343993123}
|
- component: {fileID: 3411055828343993123}
|
||||||
- component: {fileID: 7071286287119029704}
|
- component: {fileID: 7071286287119029704}
|
||||||
m_Layer: 0
|
m_Layer: 2
|
||||||
m_Name: PrintableBody
|
m_Name: PrintableBody
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
|
|||||||
Binary file not shown.
@@ -10,7 +10,6 @@ public class ComputerPrinter : MonoBehaviour
|
|||||||
public Transform ejectionDestination;
|
public Transform ejectionDestination;
|
||||||
public Printable printablePrefab;
|
public Printable printablePrefab;
|
||||||
public float ejectionDuration = 1.0f;
|
public float ejectionDuration = 1.0f;
|
||||||
public int ignorePlayerCollisionLayer = 2;
|
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
@@ -32,11 +31,6 @@ public class ComputerPrinter : MonoBehaviour
|
|||||||
|
|
||||||
Printable printable = Instantiate(printablePrefab, ejectionOrigin.position, Quaternion.identity);
|
Printable printable = Instantiate(printablePrefab, ejectionOrigin.position, Quaternion.identity);
|
||||||
printable.AttachTexture(generatedTexture);
|
printable.AttachTexture(generatedTexture);
|
||||||
printable.gameObject.layer = ignorePlayerCollisionLayer;
|
|
||||||
foreach (Transform childTrans in printable.transform.GetComponentInChildren<Transform>())
|
|
||||||
{
|
|
||||||
childTrans.gameObject.layer = ignorePlayerCollisionLayer;
|
|
||||||
}
|
|
||||||
|
|
||||||
printable.transform.DOMove(ejectionDestination.position, ejectionDuration).OnComplete(() =>
|
printable.transform.DOMove(ejectionDestination.position, ejectionDuration).OnComplete(() =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
using FMOD.Studio;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -9,12 +10,15 @@ public class Printer3D : MonoBehaviour
|
|||||||
public int ignorePlayerCollisionLayer = 2;
|
public int ignorePlayerCollisionLayer = 2;
|
||||||
public string shapeScannerTag = "ShapeScannable";
|
public string shapeScannerTag = "ShapeScannable";
|
||||||
|
|
||||||
|
private bool isPrinting = false;
|
||||||
|
private EventInstance printingSound;
|
||||||
private GameObject GeneratedModel;
|
private GameObject GeneratedModel;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
|
printingSound = AudioManager.Instance.CreateInstance(FMODEvents.Instance.Printing);
|
||||||
|
printingSound.setParameterByName("3DPrinterPrintingJob", 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
@@ -25,6 +29,10 @@ public class Printer3D : MonoBehaviour
|
|||||||
|
|
||||||
public async void PrintObject(Texture2D texture)
|
public async void PrintObject(Texture2D texture)
|
||||||
{
|
{
|
||||||
|
isPrinting = true;
|
||||||
|
printingSound.start();
|
||||||
|
printingSound.setParameterByName("3DPrinterPrintingJob", 0);
|
||||||
|
|
||||||
string encodedTexture = Convert.ToBase64String(texture.EncodeToJPG());
|
string encodedTexture = Convert.ToBase64String(texture.EncodeToJPG());
|
||||||
byte[] encodedModel = await TrellisClient.Instance.GenerateModel(encodedTexture);
|
byte[] encodedModel = await TrellisClient.Instance.GenerateModel(encodedTexture);
|
||||||
|
|
||||||
@@ -36,6 +44,9 @@ public class Printer3D : MonoBehaviour
|
|||||||
GeneratedModel.transform.position = Vector3.zero;
|
GeneratedModel.transform.position = Vector3.zero;
|
||||||
}
|
}
|
||||||
GeneratedModel = spawnedObject;
|
GeneratedModel = spawnedObject;
|
||||||
|
|
||||||
|
printingSound.setParameterByName("3DPrinterPrintingJob", 1);
|
||||||
|
isPrinting = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitializeSpawnedObject(GameObject spawnedObject)
|
private void InitializeSpawnedObject(GameObject spawnedObject)
|
||||||
@@ -59,4 +70,9 @@ public class Printer3D : MonoBehaviour
|
|||||||
|
|
||||||
spawnedObjectParent.AddComponent<TwoHandScaleGrabInteractable>();
|
spawnedObjectParent.AddComponent<TwoHandScaleGrabInteractable>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsPrinting()
|
||||||
|
{
|
||||||
|
return isPrinting;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
using System.Collections;
|
using DG.Tweening;
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.XR.Interaction.Toolkit;
|
||||||
|
|
||||||
public class Printer3DInputHole : MonoBehaviour
|
public class Printer3DInputHole : MonoBehaviour
|
||||||
{
|
{
|
||||||
public Printer3D printer;
|
public Printer3D printer;
|
||||||
|
public XRInteractionManager interactionManager;
|
||||||
|
public Transform insertionOrigin;
|
||||||
|
public Transform insertionDestination;
|
||||||
|
public float insertionDuration = 1f;
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start()
|
void Start()
|
||||||
@@ -26,10 +30,56 @@ public class Printer3DInputHole : MonoBehaviour
|
|||||||
Printable printable = parent.GetComponent<Printable>();
|
Printable printable = parent.GetComponent<Printable>();
|
||||||
if (printable != null)
|
if (printable != null)
|
||||||
{
|
{
|
||||||
printer.PrintObject(printable.GetTexture());
|
if (printer.IsPrinting())
|
||||||
Destroy(printable.gameObject);
|
{
|
||||||
|
Debug.Log("priner is busy!");
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
ReleaseFromPlayer(printable);
|
||||||
|
InsertPrintable(printable);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ReleaseFromPlayer(Printable printable)
|
||||||
|
{
|
||||||
|
|
||||||
|
var grab = printable.GetComponent<XRGrabInteractable>();
|
||||||
|
var rb = printable.GetComponent<Rigidbody>();
|
||||||
|
|
||||||
|
// 1) If currently held, force release from the interactor
|
||||||
|
if (grab != null && grab.isSelected)
|
||||||
|
{
|
||||||
|
var interactor = grab.firstInteractorSelecting; // the hand/controller currently holding it
|
||||||
|
if (interactor != null)
|
||||||
|
{
|
||||||
|
// Transfer ownership: tell the manager to stop the selection
|
||||||
|
interactionManager.SelectExit(interactor, grab);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2) Make sure physics doesn't fight the tween (optional but recommended)
|
||||||
|
if (rb != null)
|
||||||
|
{
|
||||||
|
rb.isKinematic = true; // prevent forces during tween
|
||||||
|
rb.velocity = Vector3.zero;
|
||||||
|
rb.angularVelocity = Vector3.zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3) Optionally disable grabbing during the tween so the player can't re-grab mid-flight
|
||||||
|
if (grab != null) grab.enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InsertPrintable(Printable printable)
|
||||||
|
{
|
||||||
|
Transform printableTransform = printable.transform;
|
||||||
|
printableTransform.position = insertionOrigin.position;
|
||||||
|
printableTransform.rotation = insertionOrigin.rotation;
|
||||||
|
printableTransform.DOMove(insertionDestination.position, insertionDuration).OnComplete(() =>
|
||||||
|
{
|
||||||
|
printer.PrintObject(printable.GetTexture());
|
||||||
|
Destroy(printable.gameObject);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user