/// <summary> /// ブースト処理 /// </summary> public void Boost() { // 加速度の蓄積 move.AddAcceleration(); // 距離ベクトルを計算して、力を加える playerRigidbody.velocity = new Vector2(boostSpeed[gaugeCount], 0.0f); // 剣を持っているなら if (player.charAttackType == GameManager.CHARATTACKTYPE.SWORD) { // 当たり判定の領域を計算 var workLeftBottom = leftBottom + (Vector2)transform.position; var workRightTop = rightTop + (Vector2)transform.position; // 範囲内のプレイヤーを検知 var hitPlayersCollider = Physics2D.OverlapAreaAll(workLeftBottom, workRightTop, playerLayer); // 当たったプレイヤーをすべて取得 foreach (var hitPlayerCollider in hitPlayersCollider) { // ゲームオブジェクトを取得 var hitPlayerObject = hitPlayerCollider.gameObject; // 自分自身のオブジェクトならcontinue if (hitPlayerObject == gameObject) { continue; } else { // 自分自身でなければダメージを与える var hitPlayerAttack = hitPlayerObject.GetComponent <PlayerAttack>(); hitPlayerAttack.IsHit = true; } } } }
/// <summary> /// プレイヤーの移動処理 /// </summary> public void Run() { // 加速度の蓄積 move.AddAcceleration(); // 速度の増加 move.SpeedChange(); // 保留 // x方向への速度変化 //ChangeVelocityXToBase(); }
/// <summary> /// 空中状態へのメイン処理 /// </summary> public void Aerial() { // 加速度の蓄積 move.AddAcceleration(); // 速度の増加 move.SpeedChange(); /*保留 * // x方向への速度変化 * ChangeVelocityXToBase(); */ }
/// <summary> /// 滑空中の処理 /// </summary> public void Gride() { // 加速度の蓄積 move.AddAcceleration(); // 速度の増加 move.SpeedChange(); // x方向への速度緩和 EasingVelocityX(); // 保留 //ChangeVelocityX(); // y方向への速度緩和 EasingVelocityY(); }
/// <summary> /// プレイヤーのvelocityを手すりのright方向に変換する関数 /// </summary> public void Slide() { // 加速度の蓄積 move.AddAcceleration(); // 高さの調整 AdjustHight(); if (RayHit == true) { Vector2 workVelocity; // 角度による速度変化 var addSpeedByRot = AddSpeedByRotate(); var workSpeed = this.speed + addSpeedByRot; // ベクトルによってはx方向とy方向に力が分散してしまうため // x方向の力の大きさをを無理やりspeedに戻す処理 float workX = 1 / RayHit.transform.right.x; workVelocity.x = workSpeed * RayHit.transform.right.x * workX; workVelocity.y = workSpeed * RayHit.transform.right.y * workX; rigidbody2d.velocity = workVelocity; // 元の処理 //rigidbody2d.velocity = workSpeed * hitObject.transform.right; } if (RayHit == true) { transform.rotation = Quaternion.FromToRotation(Vector2.right, RayHit.collider.gameObject.transform.right); } //else if(Hit.collider.gameObject.tag == "Converter") //{ // Debug.Log("コンバーター"); // GameObject converter = Hit.collider.gameObject; // Vector2 converterPos = Hit.collider.gameObject.transform.position; // Vector2 hit2converterBottom // = Hit.point - new Vector2(converterPos.x, converterPos.y - converter.GetComponent<CircleCollider2D>().radius * converter.transform.localScale.x); // Debug.DrawLine(Hit.point, new Vector2(converterPos.x, converterPos.y - converter.GetComponent<CircleCollider2D>().radius * converter.transform.localScale.x), Color.red); // Vector2 point = new Vector2(Hit.point.x, converterPos.y - converter.GetComponent<CircleCollider2D>().radius * converter.transform.localScale.y *2); // Debug.DrawLine(converter.transform.position, point, Color.blue); // Vector2 Converter2point = point - (Vector2)converter.transform.position; // transform.rotation = Quaternion.FromToRotation(Vector2.up, hit2converterBottom); //} }