Merge branch 'develop' into feature/skill-data
This commit is contained in:
+20
-129
@@ -3954,140 +3954,31 @@ namespace BrewMonster
|
||||
return bRet;
|
||||
}
|
||||
public bool GetPushDir(ref Vector3 vPushDir, uint dwMask, float deltaTime)
|
||||
{
|
||||
Vector3 vRight = Vector3.zero;
|
||||
vRight.x = joystick.Horizontal;
|
||||
vRight.z = joystick.Vertical;
|
||||
vRight.y = 0f;
|
||||
vRight.Normalize();
|
||||
if (vRight == Vector3.zero)
|
||||
{
|
||||
vPushDir = Vector3.zero;
|
||||
if (joystick.Horizontal == 0 && joystick.Vertical == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
vPushDir = vRight;
|
||||
/* // reset
|
||||
vPushDir = Vector3.zero;
|
||||
Vector3 vRight = Vector3.zero;
|
||||
bool bMove = false;
|
||||
if(m_iMoveEnv == Move_environment.MOVEENV_AIR)
|
||||
{
|
||||
|
||||
// Không bấm gì → không có hướng
|
||||
if (m_dwMoveRelDir == 0)
|
||||
return false;
|
||||
}
|
||||
else if(m_iMoveEnv == Move_environment.MOVEENV_WATER)
|
||||
{
|
||||
|
||||
// ===== LEFT =====
|
||||
if ((m_dwMoveRelDir & MD_LEFT) != 0)
|
||||
{
|
||||
// Nếu trên không → xoay camera thay vì di chuyển
|
||||
if (m_iMoveEnv == MOVEENV_AIR)
|
||||
{
|
||||
// giữ nguyên logic PW
|
||||
ECMSG msg = new ECMSG();
|
||||
msg.dwParam2 = 0;
|
||||
msg.dwParam1 = (uint)(_yaw_vel_air * deltaTime);
|
||||
|
||||
if ((m_dwMoveRelDir & MD_BACK) != 0)
|
||||
msg.dwParam1 = (uint)(-(int)msg.dwParam1);
|
||||
|
||||
OnMsgHstYaw(msg); // TODO: bạn map hàm này sang Unity
|
||||
}
|
||||
else if (m_iMoveEnv == MOVEENV_WATER)
|
||||
{
|
||||
ECMSG msg = new ECMSG();
|
||||
msg.dwParam2 = 0;
|
||||
msg.dwParam1 = (uint)(_yaw_vel * deltaTime);
|
||||
|
||||
if ((m_dwMoveRelDir & MD_BACK) != 0)
|
||||
msg.dwParam1 = (uint)(-(int)msg.dwParam1);
|
||||
|
||||
OnMsgHstYaw(msg); // TODO
|
||||
}
|
||||
else
|
||||
{
|
||||
// Mặt đất → di chuyển sang trái theo camera
|
||||
// C++: vRight = -m_CameraCoord.GetRight();
|
||||
Vector3 camRight = m_CameraCoord.GetRight(); // TODO: map sang Unity Camera?
|
||||
vRight = -camRight;
|
||||
vRight.y = 0;
|
||||
vRight.Normalize();
|
||||
|
||||
vPushDir = vRight;
|
||||
bMove = true;
|
||||
}
|
||||
}
|
||||
|
||||
// ===== RIGHT =====
|
||||
else if ((m_dwMoveRelDir & MD_RIGHT) != 0)
|
||||
{
|
||||
if (m_iMoveEnv == MOVEENV_AIR)
|
||||
{
|
||||
ECMSG msg = new ECMSG();
|
||||
msg.dwParam2 = 0;
|
||||
msg.dwParam1 = (uint)((-_yaw_vel_air) * deltaTime);
|
||||
|
||||
if ((m_dwMoveRelDir & MD_BACK) != 0)
|
||||
msg.dwParam1 = (uint)(-(int)msg.dwParam1);
|
||||
|
||||
OnMsgHstYaw(msg); // TODO
|
||||
}
|
||||
else if (m_iMoveEnv == MOVEENV_WATER)
|
||||
{
|
||||
ECMSG msg = new ECMSG();
|
||||
msg.dwParam2 = 0;
|
||||
msg.dwParam1 = (uint)((-_yaw_vel) * deltaTime);
|
||||
|
||||
if ((m_dwMoveRelDir & MD_BACK) != 0)
|
||||
msg.dwParam1 = (uint)(-(int)msg.dwParam1);
|
||||
|
||||
OnMsgHstYaw(msg); // TODO
|
||||
}
|
||||
else
|
||||
{
|
||||
// Mặt đất → di chuyển sang phải theo camera
|
||||
Vector3 camRight = m_CameraCoord.GetRight(); // TODO
|
||||
vRight = camRight;
|
||||
vRight.y = 0;
|
||||
vRight.Normalize();
|
||||
|
||||
vPushDir = vRight;
|
||||
bMove = true;
|
||||
}
|
||||
}
|
||||
|
||||
// ===== FORWARD =====
|
||||
if ((m_dwMoveRelDir & MD_FORWARD) != 0)
|
||||
{
|
||||
Vector3 forward = m_CameraCoord.GetDir(); // TODO
|
||||
forward.y = 0;
|
||||
forward.Normalize();
|
||||
|
||||
vPushDir = forward;
|
||||
|
||||
if (bMove)
|
||||
{
|
||||
vPushDir += vRight;
|
||||
vPushDir.Normalize();
|
||||
}
|
||||
}
|
||||
// ===== BACK =====
|
||||
else if ((m_dwMoveRelDir & MD_BACK) != 0)
|
||||
{
|
||||
Vector3 back = -m_CameraCoord.GetDir(); // TODO
|
||||
back.y = 0;
|
||||
back.Normalize();
|
||||
|
||||
vPushDir = back;
|
||||
|
||||
if (bMove)
|
||||
{
|
||||
vPushDir += vRight;
|
||||
vPushDir.Normalize();
|
||||
}
|
||||
}
|
||||
// ===== ABS UP (nếu mask cho phép) =====
|
||||
else if (((m_dwMoveRelDir & MD_ABSUP) != 0) && ((dwMask & MD_ABSUP) != 0))
|
||||
{
|
||||
vPushDir = Vector3.up;
|
||||
}*/
|
||||
}
|
||||
else
|
||||
{
|
||||
float angle = Vector2.Angle(new Vector2(joystick.Horizontal, joystick.Vertical), Vector2.up);
|
||||
angle *= joystick.Horizontal < 0 ? 1 : -1;
|
||||
Vector2 v2Cam = new Vector2(mainCam.transform.forward.x, mainCam.transform.forward.z);
|
||||
v2Cam = Quaternion.Euler(0, 0, angle) * v2Cam;
|
||||
v2Cam.Normalize();
|
||||
vPushDir.x = v2Cam.x;
|
||||
vPushDir.y = 0;
|
||||
vPushDir.z = v2Cam.y;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user