using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; public class ConstructFaucet : MonoBehaviour { static GameObject F; static int nOT; static string SCModel; static string SCColor; public static void addfaucet(int NO) { nOT = NO; SCModel= _G.OBJs[nOT][68].Split(","[0])[0]; // SC[1] = _G.OBJs[nOT][68].Split(","[0])[1]; // SC[2] = _G.OBJs[nOT][68].Split(","[0])[2]; SCColor= _G.OBJs[nOT][68].Split(","[0])[3]; Addressables.InstantiateAsync(SCModel).Completed += face_Completed; } public static void AddfaucetOnCab() { CameraAround.Show(); float h = DOIT.ConvertStringToNumber(_OL.GetValue(SCModel,"h")); float A=180; float dx=0; float dz=8.5f; GameObject TAR = GameObject.Find(_G.OBJs[nOT][0]); Vector3 TARr = TAR.transform.rotation.eulerAngles; TAR.transform.localRotation = Quaternion.Euler(0, 0, 0); if (TAR.transform.Find("Faucet")) Destroy(TAR.transform.Find("Faucet").gameObject); int nO = Get.GetObjectIndex(_G.OBJs[nOT][0]); Vector3 TARp = TAR.transform.position; print( "_G.OBJs[nO][7]====" + _G.OBJs[nO][7] + " _G.OBJs[nO][11]====" + _G.OBJs[nO][11] ); float Oh = DOIT.ConvertStringToNumber(_G.OBJs[nO][7])+DOIT.ConvertStringToNumber(_G.OBJs[nO][11]); float Od = DOIT.ConvertStringToNumber(_G.OBJs[nO][8]); if(_G.OBJs[nO][4]=="B4"){A=135; dx=-4.5f; dz=12.5f;} if(_G.OBJs[nO][4]=="B5"){A=225; dx=4.5f; dz=12.5f;} _G.OBJs[nO][68] = SCModel+ "," + Oh + "," + Od + "," + SCColor; F.transform.localRotation = Quaternion.Euler(0, A, 0); F.transform.position = new Vector3(TARp.x+dx, TARp.y + Oh / 2 + h / 2, TARp.z + Od / 2 - dz); for (int i = 0; i < F.transform.childCount; i++) { F.transform.GetChild(i).GetComponent().material= UIT_MATERIAL.GetMaterial(SCColor); F.transform.GetChild(i).GetComponent().probeAnchor = GameObject.Find("Reflection Probe").transform; } F.name = "Faucet"; F.transform.parent = TAR.transform; TAR.transform.localRotation = Quaternion.Euler(TARr.x, TARr.y, TARr.z); } private static void face_Completed(AsyncOperationHandle handle) { if (handle.Status == AsyncOperationStatus.Succeeded) { F = handle.Result; AddfaucetOnCab(); } } }