// Update is called once per frame private void Update() { //固定されていなければ傾け処理 if (!fixedFlag) { LeanFilm(); } //深い状態から浅い状態への移行中 if (filmDepthStatus == FilmManager.FilmDepthStatus.CENTER) { Vector3 nowPos = tf.position; nowPos.y += deepToShallowMoveSpeed * Time.deltaTime; if (nowPos.y < shallowPositionY) { //浅い状態への移行完了 nowPos.y = shallowPositionY; filmDepthStatus = FilmManager.FilmDepthStatus.SHALLOW; } tf.position = nowPos; } //落下フラグが立っていれば落下処理(物理挙動使わない場合) if (fallFlag) { Vector3 nowPos = tf.position; fallSpeed += Physics2D.gravity.y * Time.deltaTime / 50; nowPos.y += fallSpeed; tf.position = nowPos; } //画面外へ出たら削除 if (!GetComponent <Renderer>().isVisible) { pauseManager.RemovePauseObject(this.gameObject, "Film"); Destroy(this.gameObject); } }
//フィルム1段ダウン public void DownFilm() { switch (filmDepthStatus) { case FilmManager.FilmDepthStatus.DEEP: filmDepthStatus = FilmManager.FilmDepthStatus.CENTER; this.sourceAudio.PlaySE((int)AudioList.AUDIO_DOWN); break; case FilmManager.FilmDepthStatus.SHALLOW: filmDepthStatus = FilmManager.FilmDepthStatus.FALL; this.sourceAudio.PlaySE((int)AudioList.AUDIO_FALL); FallFilm(); break; default: break; } }
// Use this for initialization private void Start() { tf = transform; fixedFlag = false; fallFlag = false; fallSpeed = 0.0f; filmManager = GameObject.Find("FilmManager").GetComponent <FilmManager>(); pauseManager = GameObject.Find("PauseManager").GetComponent <PauseManager>(); leanSpeed = filmManager.leanSpeed; deepToShallowMoveTime = filmManager.deepToShallowMovetime; deepToShallowMoveSpeed = (filmManager.shallowFilmPosition.y - filmManager.deepFilmPosition.y) / deepToShallowMoveTime; clipPosition = tf.parent.position; //フィルムの深さ判定 if (filmManager.deepFilmPosition.y - 1 <= tf.position.y) { filmDepthStatus = FilmManager.FilmDepthStatus.DEEP; } else { filmDepthStatus = FilmManager.FilmDepthStatus.SHALLOW; clipPosition.y -= filmManager.deepFilmPosition.y - tf.position.y; //浅く挿んだ時は深い位置との差分原点を下げる } //子である足場を取得 leaves = GetComponentsInChildren <Leaf>(); foreach (var leaf in leaves) { leaf.SetOnPlayerFallTime(filmManager.onPlayerFallTime); //付属する足場にプレイヤーが何秒乗ったら落ちるかをセット } //Sound this.audioClip = new CustomAudioClip[(int)AudioList.AUDIO_MAX]; this.audioClip[(int)AudioList.AUDIO_DOWN].Clip = Resources.Load("Audio/SE/Film_Down", typeof(AudioClip)) as AudioClip; this.audioClip[(int)AudioList.AUDIO_DOWN].Vol = 1.0f; this.audioClip[(int)AudioList.AUDIO_FALL].Clip = Resources.Load("Audio/SE/Film_Fall", typeof(AudioClip)) as AudioClip; this.audioClip[(int)AudioList.AUDIO_FALL].Vol = 1.0f; sourceAudio = this.gameObject.AddComponent <SourceAudio>(); sourceAudio.m_Audio = this.audioClip; }