/// <summary> /// 攻撃関数 /// </summary> /// <param name="which">どちらの手か</param> private void Attack(WhichHand which) { audio.PlayOneShot(FindAudioWithName("パンチ")); var colls = FindVillainCollider2D(); #region 空振り if (colls.Count() == 0) { Consume(which, WIFF_CONSUME_GAGE); return; } #endregion 空振り #region ゲージの消費 foreach (var coll in colls) { Consume(which, coll.GetComponent <VillainBase>().GageConsume); } #endregion ゲージの消費 #region コライダーの吹き飛ばし var exprDir = dirHelper.position - attackOrigin.position; AddForce(colls, exprDir, attackPower); #endregion コライダーの吹き飛ばし #region コライダーのダメージ処理 foreach (var coll in colls) { coll.gameObject.SendMessage("Damaged"); } #endregion コライダーのダメージ処理 }
public static void Save(List <GameObject> bones, WhichHand w) { if (_instance == null) { _instance = new SaveHandPosition(); } var timestamp = Variables.GetCurrentUnixTimestampMillis(); var Sample = Variables.SampleNumber; var SubjectID = Variables.UserId; var GameObjectName = bones[0].name; var Hand = w; var Displacement = GameObjectName.Split('_')[3]; var Texture = GameObjectName.Split('_')[4]; var Amp = Variables.Amplitude; var Size = Variables.ButtonWidthModifier; var ID = Mathf.Log(Amp / (Size) + 0.5f, 2); var Repetition = SaveClickData._repetitionDict.ContainsKey(ID) ? SaveClickData._repetitionDict[ID] : 1; var Duration = timestamp - Variables.ClickTime; foreach (var bone in bones) { string output = ""; var BoneName = bone.name; var PosX = _instance._objects.Buttons.transform.InverseTransformPoint(bone.transform.position).x; var PosY = _instance._objects.Buttons.transform.InverseTransformPoint(bone.transform.position).y; var PosZ = _instance._objects.Buttons.transform.InverseTransformPoint(bone.transform.position).z; var RotX = _instance._objects.Buttons.transform.InverseTransformPoint(bone.transform.position).x; var RotY = _instance._objects.Buttons.transform.InverseTransformPoint(bone.transform.position).y; var RotZ = _instance._objects.Buttons.transform.InverseTransformPoint(bone.transform.position).z; output += Sample + CsvSeparator + timestamp + CsvSeparator + SubjectID + CsvSeparator + GameObjectName + CsvSeparator + Hand + CsvSeparator + Texture + CsvSeparator + Displacement + CsvSeparator + Amp + CsvSeparator + Size + CsvSeparator + ID + CsvSeparator + Repetition + CsvSeparator + Duration + CsvSeparator + BoneName + CsvSeparator + PosX + CsvSeparator + PosY + CsvSeparator + PosZ + CsvSeparator + RotX + CsvSeparator + RotY + CsvSeparator + RotZ; _instance.sw.Write(output + "\r\n"); _instance.sw.Flush(); } }
/// <summary> /// ゲージを消費する /// </summary> /// <param name="which">どちらの手か</param> /// <param name="consume">消費する値</param> private void Consume(WhichHand which, float consume) { switch (which) { case WhichHand.Left: leftGage -= consume; break; case WhichHand.Right: rightGage -= consume; break; default: break; } leftGage = Mathf.Max(0f, leftGage); rightGage = Mathf.Max(0f, rightGage); }
private void AddHand(Transform t, string _name, WhichHand whichHand) { var allChildren = t.GetComponentsInChildren <Transform>(); var childObjects = allChildren.Select(child => child.gameObject).ToList(); switch (whichHand) { case WhichHand.Right: RightHands.Add(_name, childObjects); break; case WhichHand.Left: LeftHands.Add(_name, childObjects); break; default: throw new ArgumentOutOfRangeException("whichHand", whichHand, null); } }