public void UpdatePersoEnvGroups() { foreach (var p in PersoController.GetPersos(typeof(PersoController))) { foreach (var s in p.sfx.Values) { s.asrc.outputAudioMixerGroup = envGroup; } } }
public void ApplyZDRCollision() { if (perso == null || !perso.HasCollisionType(CollideType.ZDR)) { return; } foreach (var p in PersoController.GetPersos(typeof(PersoController)).Where((x) => x.HasCollisionType(CollideType.ZDR))) { var zdr1 = perso.GetCollisionSphere(CollideType.ZDR); var zdr2 = p.GetCollisionSphere(CollideType.ZDR); float dist = PersoController.Dist(zdr1.position, zdr2.position); float maxDist = zdr1.radius + zdr2.radius; if (dist < maxDist) { perso.pos += (zdr1.position - zdr2.position).normalized * (maxDist - dist); } } }