show selecting vfx

This commit is contained in:
NguyenVanDat
2025-11-10 18:24:09 +07:00
parent e07be0d048
commit b7bf20be75
13 changed files with 5087 additions and 294 deletions
+35 -21
View File
@@ -18,6 +18,7 @@ using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using BrewMonster.PerfectWorld.Scripts.Vfx;
using TMPro;
using UnityEngine;
using UnityEngine.InputSystem;
@@ -52,6 +53,8 @@ public partial class CECHostPlayer : CECPlayer
bool m_bJumpInWater = false;
public A3DVECTOR3 m_vVelocity; // Velocity
List<CECObject> m_aTabSels = new List<CECObject>();
bool m_bChangingFace; // true, host is changing face
float playerSpeed = 5.0f;
float jumpHeight = 1.5f;
@@ -89,6 +92,8 @@ public partial class CECHostPlayer : CECPlayer
RaycastHit lastGroundHit;
Camera mainCam;
private BaseVfxObject m_pSelectedGFX;
private void Awake()
{
base.Awake();
@@ -944,6 +949,13 @@ public partial class CECHostPlayer : CECPlayer
{
return;
}
// Load GFX
var gfxCaster = EC_Game.GetGFXCaster();
// m_pMoveTargetGFX = g_pGame->GetGFXCaster()->LoadGFXEx(res_GFXFile(RES_GFX_MOVETARGET));
m_pSelectedGFX = gfxCaster.LoadGFXEx(EC_Resource.res_GFXFile((int)GfxResourceType.RES_GFX_SELECTED));
// m_pHoverGFX = g_pGame->GetGFXCaster()->LoadGFXEx(res_GFXFile(RES_GFX_CURSORHOVER));
// m_pFloatDust = g_pGame->GetGFXCaster()->LoadGFXEx(res_GFXFile(RES_GFX_FLOATING_DUST));
}
private void JoystickStartDrag(JoystickPressEvent joystickPressEvent)
@@ -1768,13 +1780,11 @@ public partial class CECHostPlayer : CECPlayer
// return fSpeedSev;
//}
void UpdateGFXs(uint dwDeltaTime)
void UpdateGFXs(float dwDeltaTime)
{
// if (m_pLevelUpGFX)
// m_pLevelUpGFX->SetParentTM(GetAbsoluteTM());
var pWorld = CECWorld.Instance;
// if (m_pHoverGFX)// && m_idCurHover != m_idSelTarget)
// {
// if (!IsChangingFace() && (ISPLAYERID(m_idCurHover) || ISNPCID(m_idCurHover)))
@@ -1794,24 +1804,26 @@ public partial class CECHostPlayer : CECPlayer
// m_pHoverGFX->Stop();
// }
// if (m_pSelectedGFX)
// {
// if (!IsChangingFace() && (ISPLAYERID(m_idSelTarget) || ISNPCID(m_idSelTarget)))
// {
// CECObject* pObject = pWorld.GetObject(m_idSelTarget, 1);
// if (pObject)
// {
// if (m_pSelectedGFX->GetState() == ST_STOP)
// m_pSelectedGFX->Start();
//
// m_pSelectedGFX->SetParentTM(pObject->GetAbsoluteTM());
// }
// else
// m_pSelectedGFX->Stop();
// }
// else
// m_pSelectedGFX->Stop();
// }
if (m_pSelectedGFX)
{
if (!IsChangingFace() && (GPDataTypeHelper.ISPLAYERID(m_idSelTarget) || GPDataTypeHelper.ISNPCID(m_idSelTarget)))
{
var pObject =EC_ManMessageMono.Instance?.GetObject(m_idSelTarget, 1);
if (pObject)
{
if (m_pSelectedGFX.GetState() == GFX_STATE.ST_STOP)
m_pSelectedGFX.Play();
// m_pSelectedGFX.SetParentTM(pObject.GetAbsoluteTM());
m_pSelectedGFX.transform.parent = pObject.transform;
m_pSelectedGFX.transform.localPosition = Vector3.zero;
}
else
m_pSelectedGFX.Stop();
}
else
m_pSelectedGFX.Stop();
}
// if (m_pFloatDust)
// {
@@ -1832,6 +1844,8 @@ public partial class CECHostPlayer : CECPlayer
// }
// UpdateMonsterSpiritGfx(dwDeltaTime);
}
public bool IsChangingFace() { return m_bChangingFace; }
}
public enum StateAnim