public void TESTINGSlicing(int entityData, Vector3 bladeDir, Vector3 moveDir, Vector3 knifeOrigin)//public void TESTINGSlicing(int entityData, Quaternion rotation, Vector3 pos, Vector3 dir, Vector3 origin)
 {
     if (_EntityID_To_NetObject.ContainsKey(entityData))
     {
         //    Debug.Log("NotGoing");
         KnifeSliceableAsync kSaSync = _EntityID_To_NetObject[entityData].GetComponent <KnifeSliceableAsync>();
         kSaSync.PropagatedSlice(bladeDir, moveDir, knifeOrigin);
     }
     else
     {
         StartCoroutine(WaitForSlicingObject(entityData, bladeDir, moveDir, knifeOrigin));
         return;
     }
 }
    public IEnumerator WaitForSlicingObject(int entityData, Vector3 bladeDir, Vector3 moveDir, Vector3 knifeOrigin)
    {
        while (true)
        {
            if (!_EntityID_To_NetObject.ContainsKey(entityData))
            {
                yield return(null);

                Debug.Log("OBJECT DOES NOT EXIST");
            }
            else
            {
                yield return(new WaitForSeconds(3));

                //  yield return new WaitUntil(() =>  _EntityID_To_NetObject[entityData].GetComponent<Rigidbody>());

                KnifeSliceableAsync kSaSync = _EntityID_To_NetObject[entityData].GetComponent <KnifeSliceableAsync>();
                kSaSync.PropagatedSlice(bladeDir, moveDir, knifeOrigin);
                yield break;
            }
        }
    }