Vector3 originalScale; //シールドの初期サイズを格納するために使用 private void Start() { shieldMesh = transform.Find("glass").GetComponent <MeshRenderer>(); //シールドの初期サイズを格納 originalScale = transform.localScale; //シールドの初期属性を炎(赤)にセット ShieldElement = ElementManager.Elements.FIRE; //シールドの耐久力の初期値をセット Health = 100; }
ElementManager.Elements e; //属性を設定するために使用 private void Awake() { meshRenderer = GetComponent <MeshRenderer>(); DamageForSameElement = 40; //同属性に対するダメージ DamageForWeakElement = 60; //弱点促成に対するダメージ //ランダムに属性を決定 e = (ElementManager.Elements)Random.Range(0, 3); //属性の設定 SetElements(e); }
private void Update() { //シーンリセット時にスタティック値に初期値をセット if (GameStateManager.CurrentState == GameStateManager.GameStates.INITIAL) { Health = 100; //初期属性は炎(赤) ShieldElement = ElementManager.Elements.FIRE; } //ゲームオーバー時以外はシールドを回転させる if (GameStateManager.CurrentState != GameStateManager.GameStates.GAMEOVER) { transform.Rotate(0, 0, 2); } //シールドの耐久値が0以下の場合 if (Health <= 0) { //シールドの耐久力を0に設定 Health = 0; //オブジェクト自体を破壊することなくゲームから除外するため、上に移動させる transform.localPosition += new Vector3(0, 100, 0); } //シールドの耐久力によってサイズを更新 transform.localScale = new Vector3(originalScale.x * (Health * 0.01f), originalScale.y * (Health * 0.01f), originalScale.z); //現在の属性に応じて色を変更 switch (ShieldElement) { case ElementManager.Elements.FIRE: shieldMesh.material.color = Color.red; break; case ElementManager.Elements.WATER: shieldMesh.material.color = Color.blue; break; case ElementManager.Elements.LEAF: shieldMesh.material.color = Color.green; break; } }
private void Update() { //シーンリセット時に体力の初期値と初期の属性を再セット if (GameStateManager.CurrentState == GameStateManager.GameStates.INITIAL) { Health = 100; //初期の属性を炎(赤)にセット BodyElement = ElementManager.Elements.FIRE; } //体の色を現属性に応じて変更 switch (BodyElement) { case ElementManager.Elements.FIRE: //赤に変更 bodyMesh.material.SetColor("_Color", Color.red); break; case ElementManager.Elements.WATER: //青に変更 bodyMesh.material.SetColor("_Color", Color.blue); break; case ElementManager.Elements.LEAF: //緑に変更 bodyMesh.material.SetColor("_Color", Color.green); break; } //体力が0以下になった際に、ゲームの状態を更新 if (Health <= 0) { //体力が負の数になった場合、0にセット Health = 0; //ゲームの状態を”ゲームオーバー”に変更 GameStateManager.CurrentState = GameStateManager.GameStates.GAMEOVER; } }
} //弱点属性に対するダメージ public void SetElements(ElementManager.Elements element) //属性を設定 { //属性に応じて同属性と弱点属性を設定 switch (element) { case ElementManager.Elements.FIRE: ElementSame = ElementManager.Elements.FIRE; ElementWeak = ElementManager.Elements.LEAF; break; case ElementManager.Elements.WATER: ElementSame = ElementManager.Elements.WATER; ElementWeak = ElementManager.Elements.FIRE; break; case ElementManager.Elements.LEAF: ElementSame = ElementManager.Elements.LEAF; ElementWeak = ElementManager.Elements.WATER; break; } }