- Legacy
Input:GetKey/Down/UpbyKeyCodeor Unity key name, mouse buttons,mousePosition,mouseScrollDelta,anyKey/anyKeyDown, andGetAxis/GetAxisRaw/GetButton*over Unity's default InputManager axes (Horizontal/Vertical with gravity 3, sensitivity 3 and snap; Fire1-3, Jump, Submit, Cancel; Mouse X/Y/ScrollWheel), smoothed like Unity once per frame. Native state is bitsets of held/pressed/released keys, fed by winit in the player and released when the window loses focus. - MCP input injection:
play_steptakesinput(hold,press,mouse_buttons,mouse_position,mouse_move,scroll,keep_held); presses land on the first frame, held keys are released after the step. - Tags and layers:
tag,CompareTag,FindWithTag/FindGameObjectsWithTag,Camera.mainpreferring "MainCamera"; editor commandsset_tag/set_layerwith undo; scenes andInstantiatecarry both. - Fix: triangle MeshColliders collided only from below (normals were flipped when cooking); a Rust test now drops a ball on a mesh ground.
- Milestone (3D half):
dotnet/samples/scenes/rollaball.jsonruns tutorial-stylePlayerController(axes andAddForcein FixedUpdate,OnTriggerEnterwithCompareTag("PickUp")),CameraControllerandRotatorscripts written against plain UnityEngine. An MCP e2e test holds D and checks that the ball rolls into a pick-up and wins. Legacy input can't be injected in Unity batchmode, so there is no Input conformance scenario; the axis tables and smoothing follow Unity's InputManager.asset and documented behavior.
Phase 3 · Slice 2 ·