예제 #1
0
 // 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);
     }
 }
예제 #2
0
    //フィルム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;
        }
    }
예제 #3
0
    // 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;
    }