### 実現したいこと
タブを移動させるスクリプトを書いている途中にこのようなエラーが発生しました。
DivideByZeroException: Division by zero TabScript.TabTransform (Int32 TotalTabs) (at Assets/Scouse/TabScript.cs:18) Controller.Start () (at Assets/Scouse/Controller.cs:165)
整数を0出かけていることを示すエラーらしいのですが、ソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5using DG.Tweening; 6 7public class TabScript : MonoBehaviour { 8 float TabWidth; 9 float OldTabWidth; 10 int tabcount; 11 int OldTotalTabs; 12 GameObject[] Toggles = new GameObject[7]; 13 int[] Presets = {800, 320, 160, 80, 32, 0, -23 }; 14 // Use this for initialization 15 public void TabTransform (int TotalTabs) { 16 int a = 0; 17 TabWidth = 1920 / TotalTabs; 18 OldTabWidth = 1920 / OldTotalTabs; 19 Toggles[a] = transform.Find("More").gameObject; 20 a++; 21 Toggles[a] = transform.Find("Play").gameObject; 22 a++; 23 Toggles[a] = transform.Find("Pause").gameObject; 24 if (Controller.play == true) 25 { 26 Toggles[a].SetActive(true); 27 a++; 28 } 29 else 30 { 31 Toggles[a].GetComponent<RectTransform>().localPosition = new Vector3(OldTabWidth * a + Presets[OldTotalTabs - 1], 0, 0); 32 //Toggles[a].SetActive(false); 33 } 34 Toggles[a] = transform.Find("Block").gameObject; 35 if (Controller.play == false) 36 { 37 Toggles[a].SetActive(true); 38 a++; 39 } 40 else 41 { 42 Toggles[a].GetComponent<RectTransform>().localPosition = new Vector3(OldTabWidth * a + Presets[OldTotalTabs - 1], 0, 0); 43 //Toggles[a].SetActive(false); 44 } 45 Toggles[a] = transform.Find("File").gameObject; 46 a++; 47 Toggles[a] = transform.Find("Dictionary").gameObject; 48 a++; 49 Toggles[a] = transform.Find("Example").gameObject; 50 for (int i = 0; i <= a; i++) 51 { 52 Toggles[i].GetComponent<RectTransform>().DOLocalMove(new Vector2(TabWidth * i + Presets[TotalTabs - 1], 0), 1f); 53 RectTransform TabBG = Toggles[i].transform.Find("Background").gameObject.GetComponent<RectTransform>(); 54 RectTransform SelectImage = Toggles[i].transform.Find("Background").gameObject.transform.Find("Image").gameObject.GetComponent<RectTransform>(); 55 TabBG.sizeDelta = new Vector2(TabWidth, 80); 56 SelectImage.sizeDelta = new Vector2(TabWidth, 80); 57 } 58 OldTotalTabs = TotalTabs; 59 } 60 61 // Update is called once per frame 62 void Update () { 63 if (Input.GetKeyDown("b")) 64 { 65 tabcount++; 66 TabTransform(tabcount); 67 } 68 if (Input.GetKeyDown("n")) 69 { 70 tabcount--; 71 TabTransform(tabcount); 72 } 73 } 74} 75
コードを見る限り、0でかけているところはありません、TabTransformも0で呼びだしている個所はありません。
###お願い
どうして0で掛けた扱いにあるのか教えてほしい。
割り算をしているはずなのに、なぜ掛け算扱いなのか知りたい(もしかしたらエラーの読み間違いかもしれませんが)
環境
Unity2018
回答3件
あなたの回答
tips
プレビュー