/// <summary> /// 取得した証拠物をこの容疑者は持っているかを判定 /// </summary> /// <param name="_hitvalue"></param>証拠品の評価値をいれる /// <param name="_arrayevidence"></param>容疑者に関連付けした証拠品配列 /// <param name="_hitevidence"></param>取得した証拠品のE_EVIDENCE型を入れてください /// <returns></returns>持っていたら_hitvalueがそのままないなら0が返される int DecreaseEvidenceValue(int _hitvalue, E_EVIDENCE[] _arrayevidence, E_EVIDENCE _hitevidence) { int k = 0; for (int i = 0; i < _arrayevidence.Length; ++i) { if (_arrayevidence[i] == _hitevidence) {//この容疑者は取得した証拠品を持っているので k = _hitvalue; } } Debug.Log(_hitevidence + "(" + k + ")が対象から引かれました"); return(k); }
/// <summary> /// 当たった証拠品から各評価値を計算するメソッド /// TODO 当たったときに呼んでください /// </summary> /// <param name="_evidence"></param>当たったメソッドのE_EVIDENCE型をいれてください public void CheckHitEvidence(E_EVIDENCE _evidence) { Debug.Log(_evidence + "が計算されました"); int stage = DataManager.Instance.stage; tagStageSuspectData arraysuspect = suspect.m_arraySuspectData[stage]; //取得した証拠品を取得 GameObject obj = GameObject.Find("EvidenceFactory").GetComponent <EvidenceFactory>().GetEvidence(_evidence); //証拠品の点数を取得 int evidencevalue = obj.GetComponent <EvidenceData>().GetEvidenceValue(stage); //犯人はこの証拠品の対象?か m_evidenceValue[0] -= DecreaseEvidenceValue(evidencevalue, arraysuspect.Guilty.evidence, _evidence); //無実の人たちはこの for (int i = 0; i < suspect.m_arraySuspectData[stage].NoGuilty.Length; ++i) { m_evidenceValue[i + 1] -= DecreaseEvidenceValue(evidencevalue, arraysuspect.NoGuilty[i].evidence, _evidence); } }
// Update is called once per frame void Update() { if (canGetFlag) { if (Input.GetKey(KeyCode.E)) { //証拠品の取得 if (DataManager.Instance.getEvidenceNum >= 3) { return; } se_getEvidence.Play(); m_evidenceImage[DataManager.Instance.getEvidenceNum].sprite = thisSprite; DataManager.Instance.getEvidenceNum++; this.gameObject.SetActive(false); E_EVIDENCE evidence = GameObject.Find("EvidenceFactory").GetComponent <EvidenceFactory>().GetEvidence(this.gameObject); GameObject.Find("GameManager").GetComponent <CalculationValue>().CheckHitEvidence(evidence); canGetFlag = false; } } }
public GameObject GetEvidence(E_EVIDENCE num) { return(m_evidences[(int)num]); }