説明なし
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

handTest.cs 9.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using TMPro;
  5. using UnityEngine;
  6. using UnityEngine.UI;
  7. public class handTest : MonoBehaviour
  8. {
  9. [SerializeField] TMP_InputField 臉盆深度_tb,臉盆寬度_tb,扶手臉盆間距_tb,牆體臉盆間距_tb;
  10. [SerializeField] TextMeshProUGUI 扶手深度左_tb,扶手深度右_tb,扶手寬度_tb,總長度_tb,扶手深度左_lb,扶手深度右_lb,扶手單位左_lb,扶手單位右_lb;
  11. [SerializeField] Toggle 左側_ch,右側_ch,雙側_ch,單腳_ch,雙腳_ch;
  12. [SerializeField] GameObject 雙側雙腳_pic,左側雙腳_pic,右側雙腳_pic,左側單腳_pic,右側單腳_pic;
  13. bool 已開啟 = false;
  14. // Start is called before the first frame update
  15. void Awake(){
  16. 左側_ch.onValueChanged.AddListener(左側_Click);右側_ch.onValueChanged.AddListener(右側_Click);雙側_ch.onValueChanged.AddListener(雙側_Click);
  17. 單腳_ch.onValueChanged.AddListener(單腳_Click);雙腳_ch.onValueChanged.AddListener(雙腳_Click);
  18. 臉盆深度_tb.onValueChanged.AddListener(臉盆_textchange);
  19. 臉盆寬度_tb.onValueChanged.AddListener(臉盆_textchange);
  20. 扶手臉盆間距_tb.onValueChanged.AddListener(臉盆_textchange);
  21. 牆體臉盆間距_tb.onValueChanged.AddListener(臉盆_textchange);
  22. }
  23. void Start(){
  24. 左側_ch.isOn=false;右側_ch.isOn=false;單腳_ch.isOn=false;雙腳_ch.isOn=true;雙側_ch.isOn=true;單腳_ch.interactable=false;雙腳_ch.interactable=false;
  25. 雙側雙腳_pic.SetActive(true);左側雙腳_pic.SetActive(false);右側雙腳_pic.SetActive(false);左側單腳_pic.SetActive(false);右側單腳_pic.SetActive(false);
  26. 臉盆深度_tb.text="";臉盆寬度_tb.text="";扶手臉盆間距_tb.text="";牆體臉盆間距_tb.text="";
  27. 扶手深度左_tb.text="";扶手深度右_tb.text="";扶手寬度_tb.text="";總長度_tb.text="";
  28. 已開啟=true;
  29. }
  30. void OnDestroy(){
  31. 左側_ch.onValueChanged.RemoveListener(左側_Click);右側_ch.onValueChanged.RemoveListener(右側_Click);雙側_ch.onValueChanged.RemoveListener(雙側_Click);
  32. 單腳_ch.onValueChanged.RemoveListener(單腳_Click);雙腳_ch.onValueChanged.RemoveListener(雙腳_Click);
  33. 臉盆深度_tb.onValueChanged.RemoveListener(臉盆_textchange);
  34. 臉盆寬度_tb.onValueChanged.RemoveListener(臉盆_textchange);
  35. 扶手臉盆間距_tb.onValueChanged.RemoveListener(臉盆_textchange);
  36. 牆體臉盆間距_tb.onValueChanged.RemoveListener(臉盆_textchange);
  37. }
  38. public void 回首頁_bt(){
  39. Main.change_Secen(1);
  40. }public void 系統設定_bt(){
  41. Main.change_Secen(2);
  42. }
  43. void 臉盆_textchange(string newText){
  44. if(已開啟){面扶計算();}
  45. }
  46. public void 左側_Click(bool isOn){
  47. if(isOn){
  48. 左側_ch.interactable=false;右側_ch.interactable=true;雙側_ch.interactable=true;單腳_ch.interactable=true;雙腳_ch.interactable=true;
  49. 右側_ch.isOn=false;雙側_ch.isOn=false;圖片判斷();
  50. 扶手深度左_tb.transform.parent.parent.gameObject.SetActive(true);
  51. 扶手深度右_tb.transform.parent.parent.gameObject.SetActive(false);
  52. 扶手深度左_lb.gameObject.SetActive(true);扶手深度右_lb.gameObject.SetActive(false);
  53. 扶手單位左_lb.gameObject.SetActive(true);扶手單位右_lb.gameObject.SetActive(false);
  54. if(已開啟){面扶計算();}
  55. }
  56. }
  57. public void 右側_Click(bool isOn){
  58. if(isOn){
  59. 左側_ch.interactable=true;右側_ch.interactable=false;雙側_ch.interactable=true;單腳_ch.interactable=true;雙腳_ch.interactable=true;
  60. 左側_ch.isOn=false;雙側_ch.isOn=false;圖片判斷();
  61. 扶手深度左_tb.transform.parent.parent.gameObject.SetActive(false);
  62. 扶手深度右_tb.transform.parent.parent.gameObject.SetActive(true);
  63. 扶手深度左_lb.gameObject.SetActive(false);扶手深度右_lb.gameObject.SetActive(true);
  64. 扶手單位左_lb.gameObject.SetActive(false);扶手單位右_lb.gameObject.SetActive(true);
  65. if(已開啟){面扶計算();}
  66. }
  67. }
  68. public void 雙側_Click(bool isOn){
  69. if(isOn){
  70. 左側_ch.interactable=true;右側_ch.interactable=true;雙側_ch.interactable=false;單腳_ch.interactable=false;雙腳_ch.interactable=false;
  71. 左側_ch.isOn=false;右側_ch.isOn=false;單腳_ch.isOn=false;雙腳_ch.isOn=true;圖片判斷();
  72. 扶手深度左_tb.transform.parent.parent.gameObject.SetActive(true);
  73. 扶手深度右_tb.transform.parent.parent.gameObject.SetActive(true);
  74. 扶手深度左_lb.gameObject.SetActive(true);扶手深度右_lb.gameObject.SetActive(true);
  75. 扶手單位左_lb.gameObject.SetActive(true);扶手單位右_lb.gameObject.SetActive(true);
  76. if(已開啟){面扶計算();}
  77. }
  78. }
  79. public void 單腳_Click(bool isOn){
  80. if(isOn){
  81. 單腳_ch.interactable=false;雙腳_ch.interactable=true;
  82. 雙腳_ch.isOn=false;圖片判斷();
  83. if(已開啟){面扶計算();}
  84. }
  85. }
  86. public void 雙腳_Click(bool isOn){
  87. if(isOn){
  88. 單腳_ch.interactable=true;雙腳_ch.interactable=false;
  89. 單腳_ch.isOn=false;圖片判斷();
  90. if(已開啟){面扶計算();}
  91. }
  92. }
  93. private void 圖片判斷(){
  94. 雙側雙腳_pic.SetActive(false);左側雙腳_pic.SetActive(false);右側雙腳_pic.SetActive(false);左側單腳_pic.SetActive(false);右側單腳_pic.SetActive(false);
  95. if(左側_ch.isOn && 單腳_ch.isOn && 雙腳_ch.isOn==false){
  96. 左側單腳_pic.SetActive(true);
  97. }else if(左側_ch.isOn && 雙腳_ch.isOn && 單腳_ch.isOn==false){
  98. 左側雙腳_pic.SetActive(true);
  99. }else if(右側_ch.isOn && 單腳_ch.isOn && 雙腳_ch.isOn==false){
  100. 右側單腳_pic.SetActive(true);
  101. }else if(右側_ch.isOn && 雙腳_ch.isOn && 單腳_ch.isOn==false){
  102. 右側雙腳_pic.SetActive(true);
  103. }else{
  104. 雙側雙腳_pic.SetActive(true);
  105. }
  106. }
  107. private void 面扶計算(){
  108. double 總長度, 左側深度, 右側深度, 扶手寬度;
  109. double 臉盆深度=0,扶手臉盆間距=0,臉盆寬度=0,牆體臉盆間距=0;
  110. if(臉盆深度_tb.text != ""){臉盆深度=double.Parse(臉盆深度_tb.text);}
  111. if(扶手臉盆間距_tb.text != ""){扶手臉盆間距=double.Parse(扶手臉盆間距_tb.text);}
  112. if(臉盆寬度_tb.text != ""){臉盆寬度=double.Parse(臉盆寬度_tb.text);}
  113. if(牆體臉盆間距_tb.text != ""){牆體臉盆間距=double.Parse(牆體臉盆間距_tb.text);}
  114. if(雙側_ch.isOn){
  115. if(臉盆深度_tb.text != ""){
  116. 左側深度=Math.Round(臉盆深度, 0) + 2 + Math.Round(扶手臉盆間距, 0);
  117. 右側深度=Math.Round(臉盆深度, 0) + 2 + Math.Round(扶手臉盆間距, 0);
  118. }else{
  119. 左側深度=0;右側深度=0;
  120. }
  121. if(臉盆寬度_tb.text != ""){
  122. 扶手寬度 = Math.Round(臉盆寬度, 0) + 4 + Math.Round(扶手臉盆間距, 0)*2;
  123. }else{
  124. 扶手寬度=0;
  125. }
  126. }else if(右側_ch.isOn){
  127. if(臉盆深度_tb.text != ""){
  128. 左側深度=0;右側深度=Math.Round(臉盆深度, 0) + 2 + Math.Round(扶手臉盆間距, 0);
  129. }else{
  130. 左側深度=0;右側深度=0;
  131. }
  132. if(臉盆寬度_tb.text != ""){
  133. if(扶手臉盆間距_tb.text != "" && 牆體臉盆間距_tb.text != ""){
  134. 扶手寬度 = Math.Round(臉盆寬度, 0) + 2 + Math.Round(扶手臉盆間距, 0) + Math.Round(牆體臉盆間距, 0);
  135. }else if(扶手臉盆間距_tb.text != "" && 牆體臉盆間距_tb.text == ""){
  136. 扶手寬度 = Math.Round(臉盆寬度, 0) + 2 + Math.Round(扶手臉盆間距, 0);
  137. }else if(扶手臉盆間距_tb.text == "" && 牆體臉盆間距_tb.text != ""){
  138. 扶手寬度 = Math.Round(臉盆寬度, 0) + 2 + Math.Round(牆體臉盆間距, 0);
  139. }else{
  140. 扶手寬度 = Math.Round(臉盆寬度, 0) + 2;
  141. }
  142. }else{
  143. 扶手寬度=0;
  144. }
  145. }else{
  146. if(臉盆深度_tb.text != ""){
  147. 左側深度=Math.Round(臉盆深度, 0) + 2 + Math.Round(扶手臉盆間距, 0);右側深度=0;
  148. }else{
  149. 左側深度=0;右側深度=0;
  150. }
  151. if(臉盆寬度_tb.text != ""){
  152. if(扶手臉盆間距_tb.text != "" && 牆體臉盆間距_tb.text != ""){
  153. 扶手寬度 = Math.Round(臉盆寬度, 0) + 2 + Math.Round(扶手臉盆間距, 0) + Math.Round(牆體臉盆間距, 0);
  154. }else if(扶手臉盆間距_tb.text != "" && 牆體臉盆間距_tb.text == ""){
  155. 扶手寬度 = Math.Round(臉盆寬度, 0) + 2 + Math.Round(扶手臉盆間距, 0);
  156. }else if(扶手臉盆間距_tb.text == "" && 牆體臉盆間距_tb.text != ""){
  157. 扶手寬度 = Math.Round(臉盆寬度, 0) + 2 + Math.Round(牆體臉盆間距, 0);
  158. }else{
  159. 扶手寬度 = Math.Round(臉盆寬度, 0) + 2;
  160. }
  161. }else{
  162. 扶手寬度=0;
  163. }
  164. }
  165. 扶手深度左_tb.text = 左側深度.ToString();扶手深度右_tb.text = 右側深度.ToString();扶手寬度_tb.text = 扶手寬度.ToString();
  166. 總長度 = 左側深度 + 右側深度 + 扶手寬度;總長度_tb.text = 總長度.ToString();
  167. }
  168. }