void Awake()
    {
        ShrinkOrExanpand = new Ps4Controller();
        ShrinkOrExanpand.Player.Shrink.performed += ctx => Shrink();
        ShrinkOrExanpand.Player.Expand.performed += ctx => Expand();

        ShrinkOrExanpand.Player.Reset.performed += ctx => ResetRoom();
    }
Example #2
0
    void Awake()
    {
        movePlayer = new Ps4Controller();
        movePlayer.Player.MovePlayer.performed += ctx => move = ctx.ReadValue <Vector2>();
        movePlayer.Player.MovePlayer.canceled  += ctx => move = Vector2.zero;

        movePlayer.Player.LightsOn.performed  += ctx => closeTheLight();
        movePlayer.Player.LanternOn.performed += ctx => closeTheLantern();
        movePlayer.Player.Escape.performed    += ctx => Escape();
    }
Example #3
0
        internal unsafe static bool TryRegisterPS4Controller(IntPtr handle, out Ps4Controller controller, out string product)
        {
            controller = null;
            var devName = GetRawInputDeviceName(handle);

            char[] arr = new char[126];
            product = null;
            var devHandle = CreateFileW(devName, FileAccess.Read, FileShare.ReadWrite, IntPtr.Zero, FileMode.Open, FileAttributes.Normal, IntPtr.Zero);

            fixed(char *p = arr)
            {
                if (HidD_GetProductString(devHandle, p, 126))
                {
                    product = new string(p);
                    var index = product.IndexOf('\0');
                    if (index != -1)
                    {
                        product.Remove(index);
                    }
                }
            }

            if (product == "Wireless Controller")
            {
                var preparsedData = IntPtr.Zero;
                if (!HidD_GetPreparsedData(devHandle, ref preparsedData))
                {
                    devHandle.Close();
                    return(false);
                }

                HidPCaps caps = new HidPCaps();
                if (HidP_GetCaps(preparsedData, ref caps) != NTStatus.Success)
                {
                    HidD_FreePreparsedData(ref preparsedData);
                    devHandle.Close();
                    return(false);
                }

                if (caps.InputReportByteLength == 64)
                {
                    HidD_FreePreparsedData(ref preparsedData);
                    controller = new Ps4Controller(devHandle, caps);
                    return(true);
                }
                else
                {
                    devHandle.Close();
                    return(false);
                }
            }
            devHandle.Close();
            return(false);
        }
Example #4
0
 void Awake()
 {
     makeBeep = new Ps4Controller();
     makeBeep.Player.Beep.performed += ctx => TurnOn();
 }
Example #5
0
 // Start is called before the first frame update
 void Awake()
 {
     lookTo = new Ps4Controller();
     lookTo.LookTo.lookAt.performed += ctx => rotate = ctx.ReadValue <Vector2>();
     lookTo.LookTo.lookAt.canceled  += ctx => rotate = Vector2.zero;
 }