public static void CreateMuzzleSparkEffct(Vector3 postion, float pitch, float yaw, int effectId, Transform muzzleTrans) { ClientEffectEmitter clientEffectObj = LocalObjectGenerator.EffectLocal.GetClientEffectEmitter(EEffectObjectClassify.Muzzle); var immobileEffectBehavior = ObjectAllocatorHolder <YawEffectBehavior> .Allocate(); immobileEffectBehavior.Initialize(pitch, yaw, postion, muzzleTrans); clientEffectObj.Initialize(effectId, immobileEffectBehavior); }
public static void CreateBulletDrop(Vector3 position, float yaw, float pitch, int effectId, int weaponId, AudioGrp_FootMatType dropMatType) { ClientEffectEmitter clientEffectObj = LocalObjectGenerator.EffectLocal.GetClientEffectEmitter(EEffectObjectClassify.BulletDrop); var yawImmobileEffectBehavior = ObjectAllocatorHolder <YawEffectBehavior> .Allocate(); yawImmobileEffectBehavior.Initialize(pitch, yaw, position, SingletonManager.Get <AudioWeaponManager>().FindById(weaponId).BulletDrop, (int)dropMatType, AudioClientEffectType.BulletDrop); clientEffectObj.Initialize(effectId, yawImmobileEffectBehavior); }
public static void CreateBulletFlyEffect(EntityKey owner, Vector3 startPos, Quaternion startRocation, Vector3 velocity, int effectId, float delay) { ClientEffectEmitter clientEffectObj = LocalObjectGenerator.EffectLocal.GetClientEffectEmitter(EEffectObjectClassify.BulletFly); var moveEffectBehavior = ObjectAllocatorHolder <MoveEffectBehavior> .Allocate(); moveEffectBehavior.Initialize(startPos, startRocation, velocity, delay); clientEffectObj.Initialize(effectId, moveEffectBehavior); //DebugUtil.MyLog("emit fire effect:{0},{1}", startPos, effectId); }
public static void CreateHitPlayerEffect(Contexts context, EntityKey owner, HitPlayerEvent hitPlayerEvent) { if (SharedConfig.IsHXMod) { return; } var player = context.player.GetEntityWithEntityKey(owner); if (null == player || !player.hasBones) { return; } var effectId = SingletonManager.Get <ClientEffectCommonConfigManager>() .GetConfigByType(EEffectObjectClassify.PlayerHit).PreLoadCfgId; ClientEffectEmitter clientEffectObj = LocalObjectGenerator.EffectLocal.GetClientEffectEmitter(EEffectObjectClassify.PlayerHit); var hitPlayerEffectBehavior = ObjectAllocatorHolder <HitPlayerEffectBehavior> .Allocate(); hitPlayerEffectBehavior.Initialize(hitPlayerEvent.HitPoint.ShiftedVector3(), new AudioEffectData(hitPlayerEvent.HitBodyPart, hitPlayerEvent.HitAudioId, AudioClientEffectType.WeaponPlayerHit), player.bones.Spine); clientEffectObj.Initialize(effectId, hitPlayerEffectBehavior); }
public static void CreateHitEnvironmentEffect(Vector3 hitPoint, Vector3 normal, EEnvironmentType environmentType, int hitAudioId, bool needEffectEntity, int chunkId, Transform parent = null) { EffectTypeInfo effectTypeInfo = environmentType.ToClientEfcInfo(); if (needEffectEntity) { ClientEffectEmitter clientEffectObj = LocalObjectGenerator.EffectLocal.GetClientEffectEmitter(EEffectObjectClassify.EnvHit); IEffectBehavior effectBehavior; if (chunkId > 0) { var chunkBehavior = ObjectAllocatorHolder <ChunkEffectBehavior> .Allocate(); //ChunkEffectBehavior b1 =ObjectAllocatorHolder<ChunkEffectBehavior>.Allocate(); chunkBehavior.Initialize(normal, hitPoint, (int)effectTypeInfo.AudioType, hitAudioId, AudioClientEffectType.WeaponEnvHit, chunkId, parent); effectBehavior = chunkBehavior; } else { var noramlEffect = ObjectAllocatorHolder <NormalEffectBehavior> .Allocate(); //NormalEffectBehavior b2 = ObjectAllocatorHolder<>.Allocate(); noramlEffect.Initialize(normal, hitPoint, (int)effectTypeInfo.AudioType, hitAudioId, AudioClientEffectType.WeaponEnvHit); effectBehavior = noramlEffect; } clientEffectObj.Initialize((int)effectTypeInfo.DefaultId, effectBehavior); } else //应对于空手情况 { GameAudioMedia.PlayHitEnvironmentAudio(effectTypeInfo.AudioType, hitAudioId, hitPoint); } }