本文整理汇总了C#中Sandbox.Game.Entities.MyEntity3DSoundEmitter.PlaySound方法的典型用法代码示例。如果您正苦于以下问题:C# MyEntity3DSoundEmitter.PlaySound方法的具体用法?C# MyEntity3DSoundEmitter.PlaySound怎么用?C# MyEntity3DSoundEmitter.PlaySound使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sandbox.Game.Entities.MyEntity3DSoundEmitter
的用法示例。
在下文中一共展示了MyEntity3DSoundEmitter.PlaySound方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: EffectSoundEmitter
public EffectSoundEmitter(uint id, Vector3 position, MySoundPair sound)
{
ParticleSoundId = id;
Updated = true;
Emitter = new MyEntity3DSoundEmitter(null);
Emitter.SetPosition(position);
Emitter.PlaySound(sound);
if (Emitter.Sound != null)
OriginalVolume = Emitter.Sound.Volume;
else
OriginalVolume = 1f;
Emitter.Update();
}
示例2: EffectSoundEmitter
public EffectSoundEmitter(uint id, Vector3 position, MySoundPair sound)
{
ParticleSoundId = id;
Updated = true;
MyEntity entity = null;
if (MyFakes.ENABLE_NEW_SOUNDS && MySession.Static.Settings.RealisticSound)//snap emitter to closest block - used for realistic sounds
{
List<MyEntity> m_detectedObjects = new List<MyEntity>();
BoundingSphereD effectSphere = new BoundingSphereD(MySession.Static.LocalCharacter != null ? MySession.Static.LocalCharacter.PositionComp.GetPosition() : MySector.MainCamera.Position, 2f);
MyGamePruningStructure.GetAllEntitiesInSphere(ref effectSphere, m_detectedObjects);
float distBest = float.MaxValue;
float dist;
for (int i = 0; i < m_detectedObjects.Count; i++)
{
MyCubeBlock block = m_detectedObjects[i] as MyCubeBlock;
if (block != null)
{
dist = Vector3.DistanceSquared(MySession.Static.LocalCharacter.PositionComp.GetPosition(), block.PositionComp.GetPosition());
if (dist < distBest)
{
dist = distBest;
entity = block;
}
}
}
m_detectedObjects.Clear();
}
Emitter = new MyEntity3DSoundEmitter(entity);
Emitter.SetPosition(position);
if (sound == null)
sound = MySoundPair.Empty;
Emitter.PlaySound(sound);
if (Emitter.Sound != null)
OriginalVolume = Emitter.Sound.Volume;
else
OriginalVolume = 1f;
Emitter.Update();
SoundPair = sound;
}
示例3: StartShootSound
internal void StartShootSound(MyEntity3DSoundEmitter soundEmitter)
{
if (ShootSound != null)
{
if (soundEmitter.IsPlaying && !soundEmitter.Loop)
soundEmitter.StopSound(true);
soundEmitter.PlaySound(ShootSound, true);
}
}
示例4: IKFeetStepSounds
private void IKFeetStepSounds(MyEntity3DSoundEmitter walkEmitter, MySoundPair cueEnum)
{
var movementState = m_character.GetCurrentMovementState();
if (movementState.GetMode() == MyCharacterMovement.Flying)
return;
if (movementState.GetSpeed() != m_lastUpdateMovementState.GetSpeed())
{
walkEmitter.StopSound(true);
m_lastStepTime = 0;
}
int usedMinimumDelay = int.MaxValue;
if (movementState.GetDirection() != MyCharacterMovement.NoDirection)
{
switch (movementState.GetSpeed())
{
case MyCharacterMovement.NormalSpeed:
usedMinimumDelay = m_stepMinimumDelayWalk;
break;
case MyCharacterMovement.Fast:
usedMinimumDelay = m_stepMinimumDelayRun;
break;
case MyCharacterMovement.VeryFast:
usedMinimumDelay = m_stepMinimumDelaySprint;
break;
}
}
bool minimumDelayExceeded = false;
minimumDelayExceeded = (MySandboxGame.TotalGamePlayTimeInMilliseconds - m_lastStepTime) >= usedMinimumDelay;
//MyRenderProxy.DebugDrawAABB(m_character.PositionComp.WorldAABB, Color.White);
if (minimumDelayExceeded)
{
int leftAnkleBoneIndex, rightAnkleBoneIndex;
MyCharacterBone leftAnkleBone = m_character.AnimationController != null
? m_character.AnimationController.FindBone(m_character.Definition.LeftAnkleBoneName, out leftAnkleBoneIndex)
: null;
MyCharacterBone rightAnkleBone = m_character.AnimationController != null
? m_character.AnimationController.FindBone(m_character.Definition.RightAnkleBoneName, out rightAnkleBoneIndex)
: null;
Vector3 posLeftFoot = leftAnkleBone != null
? leftAnkleBone.AbsoluteTransform.Translation
: m_character.PositionComp.LocalAABB.Center;
Vector3 posRightFoot = rightAnkleBone != null
? rightAnkleBone.AbsoluteTransform.Translation
: m_character.PositionComp.LocalAABB.Center;
float ankleHeight;
MyFeetIKSettings settingsIK;
if (m_character.Definition.FeetIKSettings != null
&& m_character.Definition.FeetIKSettings.TryGetValue(MyCharacterMovementEnum.Standing, out settingsIK))
{
ankleHeight = settingsIK.FootSize.Y;
}
else
{
ankleHeight = DEFAULT_ANKLE_HEIGHT;
}
float charSpeed = 0f;
if (m_character.AnimationController != null)
m_character.AnimationController.Variables.GetValue(MyAnimationVariableStorageHints.StrIdSpeed, out charSpeed);
if (posLeftFoot.Y - ankleHeight < m_character.PositionComp.LocalAABB.Min.Y
|| posRightFoot.Y - ankleHeight < m_character.PositionComp.LocalAABB.Min.Y)
{
if(charSpeed > 0.05f)
walkEmitter.PlaySound(cueEnum);
m_lastStepTime = MySandboxGame.TotalGamePlayTimeInMilliseconds;
}
}
m_lastUpdateMovementState = movementState;
}
示例5: ReceivedStepPacket
public void ReceivedStepPacket(byte[] bytes)
{
try
{
long entId = BitConverter.ToInt64(bytes, 0);
if(MyAPIGateway.Entities.EntityExists(entId))
{
var ent = MyAPIGateway.Entities.GetEntityById(entId);
var emitter = new MyEntity3DSoundEmitter(ent as MyEntity);
emitter.PlaySound(soundStep, false, false, false);
}
}
catch(Exception e)
{
Log.Error(e);
}
}
示例6: StartShootSound
internal void StartShootSound(MyEntity3DSoundEmitter soundEmitter)
{
if (ShootSound != null && soundEmitter != null)
{
if (soundEmitter.IsPlaying)
{
if (!soundEmitter.Loop)
soundEmitter.PlaySound(ShootSound, true);
}
else
soundEmitter.PlaySound(ShootSound,true);
}
}