Esempio n. 1
0
        // Start Up
        private void Awake()
        {
            // MRTK components to add
            manipHandler = gameObject.AddComponent <ManipulationHandler>();
            manipHandler.TwoHandedManipulationType = ManipulationHandler.TwoHandedManipulation.MoveRotate;

            // Other components
            codeBlockSnap = gameObject.AddComponent <CodeBlockSnap>();
            snapColliders = GetComponentInChildren <SnapColliderGroup>();

            // Setup
            SetMyBlockInternalArg();
            CodeBlockManager.instance.RegisterCodeBlock(this);

            // ArgListManager set up
            codeBlockArgumentList = gameObject.AddComponent <CodeBlockArgumentList>();
            codeBlockArgumentList.SetUp(this);

            if (GetComponent <ManipulationLogger>() == null)
            {
                gameObject.AddComponent <ManipulationLogger>();
            }

            UpdateText();
        }
Esempio n. 2
0
 private void OnTriggerExit(Collider collision)
 {
     collisionCodeBlockSnap = GetCollidersCodeBlockSnap(collision);
     if (collisionCodeBlockSnap == CodeBlockSnap.CurrentlyDraggingCodeBlockSnap)
     {
         collisionCodeBlockSnap?.RemoveAsCurSnapColliderInContact(this);
     }
 }
Esempio n. 3
0
 private void OnTriggerEnter(Collider collision)
 {
     collisionCodeBlockSnap = GetCollidersCodeBlockSnap(collision); // TODO: mega hack, need to find codeblock snap of other
     if (collisionCodeBlockSnap == CodeBlockSnap.currentlyDraggingCBS)
     {
         collisionCodeBlockSnap?.AddSnapColliderInContact(this);
     }
 }
Esempio n. 4
0
 /// <summary>
 /// Evaulates what snap action to take and then resets CBS
 /// </summary>
 /// <param name="call">End manipuation event</param>
 void OnManipulationEnd(ManipulationEventData call)
 {
     EvaluateBestCandidateCollider();
     CodeBlockManager.instance.DisableCollidersCompatibleCodeBlock(MyCodeBlock);
     ResetCBS();
     CurrentlyDraggingCodeBlockSnap = null;
     enabled = false;
 }
Esempio n. 5
0
 /// <summary>
 /// Set up for finding canidate SnapColliders when user grabs CodeBlock
 /// </summary>
 /// <param name="call">Manipulation Event when user grabs block</param>
 void OnManipulationStart(ManipulationEventData call)
 {
     CurrentlyDraggingCodeBlockSnap = this;
     enabled = true;
     CodeBlockManager.instance.EnableCollidersCompatibleCodeBlock(MyCodeBlock);
     snapColliderGroup?.DisableAllCollidersAndChildrenColliders();
     // run raycast
     StartCoroutine(ShootRayFromHandThroughSnapColliders(call.Pointer));
 }
Esempio n. 6
0
 void OnManipulationEnd(ManipulationEventData call)
 {
     currentlyDraggingCBS = null;
     lastDraggedCBS       = this;
     if (bestCandidateSnapCollider != null)
     {
         bestCandidateSnapCollider.DoSnapAction(bestCandidateSnapCollider.GetMyCodeBlock(), GetMyCodeBlock());
     }
     else
     {
         // Remove when dragged away
         myCodeBlock.RemoveFromParentBlock(true);
     }
     mySnapColliders?.DisableAllCompatibleColliders();
     GetCurSnapCollidersInContact().Clear();
     AddSnapColliderInContact(null);
 }
Esempio n. 7
0
 void OnManipulationEnd(ManipulationEventData call)   //let go of the block
 {
     currentlyDraggingCBS = null;
     lastDraggedCBS       = this;
     if (bestCandidateSnapCollider != null)  // within grey zone; SNAP ON
     {
         bestCandidateSnapCollider.DoSnapAction(bestCandidateSnapCollider.GetMyCodeBlock(), GetMyCodeBlock());
         Block2TextConsoleManager.instance.UpdateConsoleOnSnap(); //refresh the Block2Text console when you ADD a block
     }
     else // outside of grey zone; SNAP OFF
          // Remove when dragged away
     {
         myCodeBlock.RemoveFromParentBlock(true);
         Block2TextConsoleManager.instance.UpdateConsoleOnSnap(); //refresh the Block2Text console when you REMOVE a block
     }
     mySnapColliders?.DisableAllCompatibleColliders();
     GetCurSnapCollidersInContact().Clear();
     AddSnapColliderInContact(null);
 }
Esempio n. 8
0
 private void AddSnapColliderComponents()
 {
     codeBlockSnap = gameObject.AddComponent <CodeBlockSnap>();
     snapColliders = gameObject.GetComponentInChildrenOnlyDepthOne <SnapColliderGroup>();
 }
Esempio n. 9
0
 void OnManipulationStart(ManipulationEventData call)
 {
     mySnapColliders?.EnableAllCompatibleColliders();
     mySnapColliders?.DisableAllCollidersAndChildrenColliders();
     currentlyDraggingCBS = this;
 }