void PlayChainSE(int chainCount) { switch (chainCount) { case 1: case 2: case 4: case 6: break; case 3: G20_SEManager.GetInstance().Play(G20_SEType.CHAIN1, Vector3.zero, false); break; case 5: G20_SEManager.GetInstance().Play(G20_SEType.CHAIN2, Vector3.zero, false); break; case 7: G20_SEManager.GetInstance().Play(G20_SEType.CHAIN3, Vector3.zero, false); break; default: G20_SEManager.GetInstance().Play(G20_SEType.CHAIN3, Vector3.zero, false); break; } }
IEnumerator PlayCoroutine(int voiceNumber) { //// 改行処理 //char[] c = { 'n' }; //var _strs = serifuList[voiceNumber].Split(c); //serifuText.text = ""; //for(int i = 0; i < _strs.Length; ++i ) //{ // serifuText.text += _strs[i]; // if ( i < _strs.Length - 1 ) serifuText.text += "\n"; //} G20_SEType seType = GetSEType((G20_VoiceType)voiceNumber); captionPerformer.StartPerformance(serifuList[voiceNumber], new G20_CaptionParam(0.5f, 0.4f, 0f)); yield return(new WaitForSecondsRealtime(voiceDelayFromCaption)); PlaySELimit(seType); float seLength = G20_SEManager.GetInstance().GetClipLength(seType); float minLength = 1.0f; float displayCaptionLength = Mathf.Max(minLength, seLength - 1.0f); yield return(new WaitForSeconds(displayCaptionLength)); captionPerformer.StopPerformance(); }
void PlaySELimit(G20_SEType seType) { if (audioSource && audioSource.isPlaying) { audioSource.Stop(); } audioSource = G20_SEManager.GetInstance().Play(seType, Vector3.zero, false); }
public override void Execute(Vector3 hit_point) { G20_SEManager.GetInstance().Play(ses[currentNum], hit_point); if (currentNum < ses.Length - 1) { currentNum++; } }
public void DamageEffectSEEnemy(G20_Enemy enemy) { G20_EffectManager effMn = G20_EffectManager.GetInstance(); G20_SEManager seMn = G20_SEManager.GetInstance(); Vector3 pos = enemy.Head.position; G20_EffectManager.GetInstance().Create(G20_EffectType.HIT_APPLE_HEAD, pos); G20_SEManager.GetInstance().Play(G20_SEType.HIT_HEAD, pos); }
void DamageEffect() { //anim.CrossFadeInFixedTime("CameraYure", 0f); if (cameraShake) { cameraShake.Shake(G20_CameraShakeType.DOWNWARD, 0.2f, 6f, 0.8f); } G20_SEManager.GetInstance().Play(G20_SEType.PLAYER_DAMAGE, Vector3.zero, false); }
void SETimerUpdate() { flySETimer += Time.deltaTime; if (SETime <= flySETimer) { G20_SEManager.GetInstance().Play(G20_SEType.FLIGHTBOSS, stageBoss.transform.position); flySETimer = 0f; } }
IEnumerator TargetJump() { //体の向き回転 Vector3 targetfront = distanceVec.normalized; targetfront.y = 0; for (float t = 0; t < rotationTime; t += AITime) { if (G20_GameManager.GetInstance().gameState != G20_GameState.INGAME) { //Debug.Log("インゲーム状態を抜けたのでAIを終了"); yield break; } var newRotation = Quaternion.LookRotation(targetfront).eulerAngles; newRotation.x = 0; //ずれ防止のため newRotation.z = 0; //ずれ防止のため transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(newRotation), rotspeed); yield return(null); } yield return(null); if (!enemy.IsLife) { yield break; } //ジャンプモーション開始 animPlayer.PlayAnimation(G20_AnimType.Jump); G20_SEManager.GetInstance().Play(G20_SEType.SMALL_APPLE_ATTACK, Vector3.zero, false); yield return(new WaitForSeconds(1.0f / enemy.anim.AnimSpeed)); //放物線 float hight = 0; while (G20_GameManager.GetInstance().gameState == G20_GameState.INGAME && transform.position.y >= -0.1f) { transform.position += (!enemy.IsLife ? -1 : 1) * transform.forward * Time.deltaTime * enemy.Speed; if (!enemy.IsLife && init_v > 0) { init_v = 0; } init_v -= gravity * Time.deltaTime * (!enemy.IsLife ? 4 : 1); hight += init_v * Time.deltaTime; transform.position = new Vector3(transform.position.x, hight, transform.position.z); if (distance < attackRange) { // 走ってる途中で近くなったので終了 yield break; } yield return(null); } }
// 字幕表示なし // 再生中はBGM音量下げる public void PlayWithNoCaption(G20_VoiceType voiceNumber) { // 字幕表示しないボイス再生 G20_SEType seType = GetSEType(voiceNumber); PlaySELimit(seType); float clipLength = G20_SEManager.GetInstance().GetClipLength(seType); G20_BGMManager.GetInstance().VolumeDown(clipLength); }
public G20_Enemy EnemyPop(G20_EnemyType enemyType, Vector3 position, G20_EnemyPopType popType = G20_EnemyPopType.RISE_UP) { // 敵のオブジェクト生成 var ene = popEnemySelector.GetPopEnemy(enemyType); ene.transform.SetParent(transform.parent); G20_SEManager.GetInstance().Play(G20_SEType.SUMMON_APPLE, position + new Vector3(0, 0.02f, 0)); // 出現演出 switch (popType) { case G20_EnemyPopType.RISE_UP: //敵の召喚エフェクト生成(少し魔法陣を浮かす) G20_EffectManager.GetInstance().Create(G20_EffectType.SUMMON_APPLE, position + new Vector3(0, 0.02f, 0)); ene.transform.position = position + new Vector3(0, riseUpDifY, 0); StartCoroutine(RiseUp(ene)); break; case G20_EnemyPopType.WALK_FORWARD: G20_EffectManager.GetInstance().Create(G20_EffectType.SUMMON_APPLE_VERT, position); position.y = 0f; ene.transform.position = position + new Vector3(0, 0, walkForwardDifZ); StartCoroutine(WalkForward(ene)); break; } var enemy = ene.GetComponent <G20_Enemy>(); //enemyのbuffを設定 G20_EnemyBuff enemy_buff = null; if (onPopSpeedBuffValue != 0) { enemy_buff = new G20_SpeedBuff(enemy, 100.0f, onPopSpeedBuffValue); } if (enemy_buff != null) { enemy.AddBuff(enemy_buff); } // 敵情報保存 G20_EnemyCabinet.GetInstance().RegisterEnemy(enemy); //敵情報破棄を敵が死んだときに実行 enemy.OnDestroyAction += G20_EnemyCabinet.GetInstance().UnregisterEnemy; return(enemy); }
private void OnCollisionEnter(Collision collision) { if (!isScoreCounted) { if (firstCollisionHItAction != null) { firstCollisionHItAction(eventArgInteger); } isScoreCounted = true; } if (playSECount < playSEMaxCount && _rigidbody.velocity.sqrMagnitude > 1.0f) { G20_SEManager.GetInstance().Play(G20_SEType.APPLE_FALL, transform.position); playSECount++; } }
private void BattleSetUP() { Destroy(stageBoss.GetComponent <G20_HitReactionVoice>()); Destroy(stageBoss.GetComponent <G20_HitCounterApple>()); G20_SEManager.GetInstance().Play(G20_SEType.BARRIER_EXTINCTION, stageBoss.transform.position); breakProtectEffect.Play(); stageBoss.recvDamageActions += (a, b) => StartCoroutine(NextGesslerMove()); stageBoss.recvDamageActions += (a, b) => HitGesslerHirumi(); stageBoss.recvDamageActions += (a, b) => { PlayDamageVoice(); }; stageBoss.recvDamageActions += (a, b) => { damageEffect.Play(true); }; stageBoss.deathActions += (a, b) => player.GetComponent <G20_Player>().IsInvincible = true; }
IEnumerator ExplodeCoroutine(Vector3 point0, Vector3 point1, float radius) { var colliders = Physics.OverlapCapsule(point0, point1, radius); float interval = 0.09f; foreach (var col in colliders) { if (!col) { continue; } var hitDamage = col.GetComponent <G20_HitDamage>(); if (!hitDamage) { continue; } var enemy = hitDamage.Target as G20_Enemy; var effectPos = Vector3.zero; if (enemy) { // 対象がEnemyの場合 effectPos = enemy.Head.position; } else { // 対象がEnemy以外の場合 effectPos = col.transform.position; } // 実ダメージ処理 hitDamage.Target.RecvDamage(hitDamage.Target.HP, G20_Unit.G20_DamageType.Player); // エフェクト・SE発生 G20_EffectManager.GetInstance().Create(G20_EffectType.HIT_APPLE_HEAD, effectPos); G20_SEManager.GetInstance().Play(G20_SEType.HIT_HEAD, effectPos); // エフェクト・SE発生にわずかに間隔を空ける yield return(new WaitForSeconds(interval)); } }
void SetDeathVoice() { G20_SEType deathSEType; if (gameObject.name.Contains("Human")) { deathSEType = (G20_SEType)Random.Range( (int)G20_SEType.APPLE_VOICE_NORMAL, (int)G20_SEType.APPLE_VOICE_NORMAL2 + 1); deathActions += (x, y) => G20_SEManager.GetInstance().Play(deathSEType, transform.position); } else if (gameObject.name.Contains("Small")) { deathSEType = G20_SEType.APPLE_VOICE_SMALL; deathActions += (x, y) => G20_SEManager.GetInstance().Play(deathSEType, transform.position); } }
public GameObject Create(Vector3 create_point) { if (maxBulletApple <= bulletCount) { return(null); } G20_SEManager.GetInstance().Play(G20_SEType.SUMMON_APPLE, create_point); var sa = G20_EffectManager.GetInstance().Create(G20_EffectType.SUMMON_APPLE_VERT, create_point); sa.transform.localScale *= 0.5f; var bulletObject = Instantiate(bulletApple); bulletObject.transform.position = create_point; bulletCount++; var ba = bulletObject.GetComponent <G20_BulletApple>(); ba.deathActions += (a, b) => bulletCount--; ba.owner = gessler; return(bulletObject); }
public override void Execute(Vector3 hit_point) { G20_SEManager.GetInstance().Play(seType, transform.position); }
public void PlaySE(int num) { G20_SEManager.GetInstance().Play((G20_SEType)num, Vector3.zero, false); }
IEnumerator ToIngameCoroutine() { // 演出中は弾の判定なし G20_BulletShooter.GetInstance().CanShoot = false; titleCanvas.SetActive(false); G20_BGMManager.GetInstance().FadeOut(); var seForest = G20_SEManager.GetInstance().Play(G20_SEType.FOREST, Vector3.zero, false); yield return(new WaitForSeconds(isSkipPerformance ? 0.001f : 1f)); //playerObj.GetComponent<Animator>().SetBool("zoomout", true); // 環境光は別のコルーチンで遷移 StartCoroutine(LightSettingCoroutine()); // プレイヤー後ずさり等のアニメーション開始 gameRootAnim.CrossFade("ToIngame", 0f); yield return(new WaitForSeconds(5.5f)); summonParticle.Play(); yield return(new WaitForSeconds(0.7f)); paramCanvas.SetActive(true); summonParticle.Stop(); gesslerAnim.enabled = true; gesslerShootPerformer.gesslerAnim.PlayAnim(G20_GesslerAnimType.Attack); yield return(new WaitForSeconds(0.9f)); yield return(new WaitForSeconds(0.6f)); gesslerShootPerformer.gesslerAnim.PlayAnim(G20_GesslerAnimType.Taiki); // ゲスラーふわふわアニメーション開始 // 最初のリンゴ召喚 G20_StageManager.GetInstance().IngameStart(); G20_StageManager.GetInstance().nowStageBehaviour.SetEnableUpdateCall(1); yield return(new WaitForSeconds(isSkipPerformance ? 0.001f : 1.5f)); // セリフ再生と字幕表示 //G20_VoicePerformer.GetInstance().Play(0); yield return(new WaitForSeconds(isSkipPerformance ? 0.001f : 0.5f)); gameRootAnim.enabled = false; gesslerShootPerformer.gesslerAnim.PlayAnim(G20_GesslerAnimType.Taiki); // 戦闘開始 G20_BulletShooter.GetInstance().CanShoot = true; gameState = G20_GameState.INGAME; G20_EnemyCabinet.GetInstance().AllEnemyAIStart(); // 「SURVIVE!」表示 uiTextSurvive.SetActive(true); // BGM G20_BGMManager.GetInstance().Play(G20_BGMType.INGAME_0); G20_SEManager.GetInstance().Fadeout(seForest); yield return(new WaitForSeconds(isSkipPerformance ? 0.001f : 5f)); uiTextSurvive.SetActive(false); yield return(null); }