public override void Mode_Update(Charactor _obj) { //コールバックによってInputRecorderをハックする base.Mode_Update(_obj); //実際に移動する関数 if (_obj.IsRight) { _obj.transform.localScale = new Vector3(_obj.BaseScale_x, _obj.transform.localScale.y, _obj.transform.localScale.z); } else { _obj.transform.localScale = new Vector3(-_obj.BaseScale_x, _obj.transform.localScale.y, _obj.transform.localScale.z); } _obj.transform.Translate(new Vector2(player.RunSpeed * MyCommonF.BoolToPorn(_obj.IsRight), 0)); //最新のスタック以外は排除する p.recorder.DeleteOldAllowStack(); if (p.RunSpeed < p.MaxRunSpeed) { p.RunSpeed += Accel; if (p.RunSpeed > p.MaxRunSpeed) { p.RunSpeed = p.MaxRunSpeed; } } }
//ただ左右に移動するだけの処理 public void Move(float _speed) { if (!Movable) { return; } //isRightをローカルのScaleで測定 SetScale(); transform.Translate(new Vector2(_speed * MyCommonF.BoolToPorn(IsRight), 0)); }
public override void Mode_Update(Charactor _obj) { base.Mode_Update(_obj); if (_obj.modetime > _obj.nowflag.StartTime && !ishitbox) { MakeHitBox(_obj, _obj.hitbox, 0, Attack[0]); } //左右移動 if (_obj.IsRight) { _obj.transform.localScale = new Vector3(_obj.BaseScale_x, _obj.transform.localScale.y, _obj.transform.localScale.z); } else { _obj.transform.localScale = new Vector3(-_obj.BaseScale_x, _obj.transform.localScale.y, _obj.transform.localScale.z); } _obj.transform.Translate(new Vector2(player.P_status.walkspeed * MyCommonF.BoolToPorn(_obj.IsRight), 0)); }
void Update() { //ポーズモードなら呼び出さない if (Time.timeScale == 0) { return; } //ランモード以外の時RunSpeedを徐々に落とす if (Mode.index != 6) { if (RunSpeed > 0) { RunSpeed -= RunDecaySpeed; if (RunSpeed < 0) { RunSpeed = 0; } } //実際に移動する関数 if (IsRight) { transform.localScale = new Vector3(BaseScale_x, transform.localScale.y, transform.localScale.z); } else { transform.localScale = new Vector3(-BaseScale_x, transform.localScale.y, transform.localScale.z); } transform.Translate(new Vector2(RunSpeed * MyCommonF.BoolToPorn(IsRight), 0)); } ParentUpdate(); //Move(); //モードの行動 if (Mode.flag.StartInputReceptionTime <= modetime && Mode.flag.EndInputReceptionTime > modetime) { recorder.Update(); } Mode.Mode_Update(this); //ジャンプ中でなく着地しているならアニメシグナル //clashの中身が入っているなら if (clash.Active) { if (Mode.index != 10) { ChangeMode(10); } } // if (status.HP <= 0) { status.Alive = false; if (Mode.index != 9) { ChangeMode(9); } } //キー入力成立タイマー更新 if (recorder.keySuccess) { keysuccesstimer += Time.deltaTime; } //無敵タイマー更新 if (Invisible) { invisibletimer += Time.deltaTime; if (invisibletimer > invisibletime) { invisibletimer = 0; Invisible = false; } } //無敵だったらカラーマスク(紫) if (Invisible || !nowflag.IsAbleToBeClashed) { renderer.color = Color.magenta; } else { if (renderer.color == Color.magenta) { renderer.color = Color.white; } } //無敵だったらレイヤーを変更 if (Invisible || !nowflag.IsAbleToBeClashed) { gameObject.layer = 13;//PlayerInvisible } else { gameObject.layer = 9;//Player } //瀕死アニメ用の体力管理 animator.SetBool("Deadly", (status.HP <= 10)); }