/// <summary> /// Take an cannibal object or exchange if the cannibal has already an object /// </summary> /// <param name="cannibalObject"></param> public void TakeCannibalObject(CannibalObject cannibalObject) { if (m_cannibalObject) { m_cannibalObject.Exchange(cannibalObject); m_cannibalObject.Release(); } cannibalObject.Take(cannibalObjectParent); m_cannibalObject = cannibalObject; }
/// <summary> /// Exchange the CannibalObject c with the second CannibalObject /// </summary> /// <param name="c1"></param> /// <param name="with"></param> public virtual void Exchange(CannibalObject with) { Vector3 memoryPosition = m_transform.position; m_transform.position = with.m_transform.position; with.m_transform.position = memoryPosition; Transform memoryParent = m_transform.parent; m_transform.SetParent(with.m_transform.parent); with.m_transform.SetParent(memoryParent); Quaternion memoryRotation = m_transform.rotation; m_transform.rotation = with.m_transform.rotation; with.m_transform.rotation = memoryRotation; }