同上一条

This commit is contained in:
2025-09-07 19:42:18 +08:00
parent 6de8b3ebc5
commit 249836d1ec
3 changed files with 59 additions and 49 deletions

View File

@@ -36,59 +36,67 @@ namespace Convention
private void Update()
{
Vector3 dxyz = Vector3.zero;
//Vector3 rxyz = Vector3.zero;
if (Keyboard.current[Key.W].isPressed || Keyboard.current[Key.UpArrow].isPressed)
if (isFocus)
{
var temp = TargetFollow.forward;
//temp.y = 0;
dxyz += temp.normalized;
}
if (Keyboard.current[Key.A].isPressed || Keyboard.current[Key.LeftArrow].isPressed)
{
var temp = TargetFollow.right;
temp.y = 0;
dxyz -= temp.normalized;
}
if (Keyboard.current[Key.D].isPressed || Keyboard.current[Key.RightArrow].isPressed)
{
var temp = TargetFollow.right;
temp.y = 0;
dxyz += temp.normalized;
}
if (Keyboard.current[Key.S].isPressed || Keyboard.current[Key.DownArrow].isPressed)
{
var temp = TargetFollow.forward;
//temp.y = 0;
dxyz -= temp.normalized;
}
if (Keyboard.current[Key.Space].isPressed)
dxyz += Vector3.up;
Vector3 dxyz = Vector3.zero;
//Vector3 rxyz = Vector3.zero;
if (Keyboard.current[Key.W].isPressed || Keyboard.current[Key.UpArrow].isPressed)
{
var temp = TargetFollow.forward;
//temp.y = 0;
dxyz += temp.normalized;
}
if (Keyboard.current[Key.A].isPressed || Keyboard.current[Key.LeftArrow].isPressed)
{
var temp = TargetFollow.right;
temp.y = 0;
dxyz -= temp.normalized;
}
if (Keyboard.current[Key.D].isPressed || Keyboard.current[Key.RightArrow].isPressed)
{
var temp = TargetFollow.right;
temp.y = 0;
dxyz += temp.normalized;
}
if (Keyboard.current[Key.S].isPressed || Keyboard.current[Key.DownArrow].isPressed)
{
var temp = TargetFollow.forward;
//temp.y = 0;
dxyz -= temp.normalized;
}
if (Keyboard.current[Key.Space].isPressed)
dxyz += Vector3.up;
#if !UNITY_EDITOR
if (Keyboard.current[Key.LeftShift].isPressed)
#else
if (Keyboard.current[Key.Q].isPressed)
if (Keyboard.current[Key.Q].isPressed)
#endif
dxyz -= Vector3.up;
dxyz -= Vector3.up;
var drotation = Vector3.zero;
if (isFocus)
{
var temp = Mouse.current.delta.ReadValue();
drotation = new(-temp.y, temp.x, 0);
var drotation = Vector3.zero;
{
var temp = Mouse.current.delta.ReadValue();
drotation = new(-temp.y, temp.x, 0);
}
//
TargetFollow.Translate(dxyz * moveSpeed, Space.World);
TargetFollow.Rotate(drotation * rotationSpeed, Space.Self);
//
if (Keyboard.current[Key.Escape].isPressed)
isFocus = false;
if (Keyboard.current[Key.LeftCtrl].isPressed && Keyboard.current[Key.LeftShift].isPressed)
{
TargetFollow.localEulerAngles = new(0, TargetFollow.eulerAngles.y, 0);
if(Keyboard.current[Key.Z].wasPressedThisFrame)
{
TargetFollow.localPosition = Vector3.zero;
}
}
}
//
TargetFollow.Translate(dxyz * moveSpeed, Space.World);
TargetFollow.Rotate(drotation * rotationSpeed, Space.Self);
//
if (Keyboard.current[Key.Escape].isPressed)
isFocus = false;
if (Keyboard.current[Key.LeftCtrl].isPressed && Keyboard.current[Key.LeftShift].isPressed)
TargetFollow.localEulerAngles = new(0, TargetFollow.eulerAngles.y, 0);
}
}
}