Exemplo n.º 1
0
    /// <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;
    }
Exemplo n.º 2
0
    /// <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;
    }