Exemplo n.º 1
0
    void OnGrab(uint sender, IValue[] args)
    {
        // Calculate coordinate of this object relative to sender
        Vec  relPos;
        Quat relRot;

        if (!obj.CalcRelativeCoord(node.Objects[sender], out relPos, out relRot))
        {
            // When calculation failed
            relPos = new Vec();
            relRot = new Quat();
        }

        // Become a child of sender
        obj.SetField("parent", node.Objects[sender].GetObjectRef());
        // Set relative coordinate
        // Keep relative position/rotation at the time of grabbing
        obj.SetField("position", relPos);
        obj.SetField("rotation", relRot);

        obj.WriteDebugLog("grabbable", $"Grabbed by object {sender}");
    }