Можно ли использовать переменную, например, логическое в единице?
var firstCanvas_ = firstCanvas.GetComponent<RectTransform>().localPosition.x == 0
if (firstCanvas_)
{
Do something
}
if (!firstCanvas_)
{
do another thing
}
отредактировано, чтобы включить более длинную версию этой идеи. То, что я пытаюсь сделать sh, это включить другой компонент сцены на основе прямоугольного преобразования (положения) панелей пользовательского интерфейса. Каждый раз, когда я go между панелями, я нажимаю кнопку, и эта кнопка вызывает функцию UpdateScreens()
:
public void UpdateScreens()
{
var artSelectionCanvas0_ = artSelectionCanvas.GetComponent<RectTransform>().localPosition.x == 0;
var measureCanvas0_ = measureCanvas.GetComponent<RectTransform>().localPosition.x == 0;
var artModeCanvas0_ = artModeCanvas.GetComponent<RectTransform>().localPosition.x == 0;
var portfolioCanvas0_ = portfolioCanvas.GetComponent<RectTransform>().localPosition.x == 0;
var purchaseCanvas0_ = purchaseCanvas.GetComponent<RectTransform>().localPosition.y == 0;
// # 1
//If ArtSelection Canvas ON
if (artSelectionCanvas0_)
{
Debug.Log("artSelectionCanvas0_ Active");
}
// # 2
//If Measure Canvas ON
if (measureCanvas0_)
{
Debug.Log(measureCanvas0_);
Debug.Log("sphere should be ON");
createPoints.GetComponent<CreatePoints>().enabled = true;
sphere.GetComponent<MeshRenderer>().enabled = true;
}
if (!measureCanvas0_)
{
Debug.Log("sphere should be OFF");
createPoints.GetComponent<CreatePoints>().enabled = false;
sphere.GetComponent<MeshRenderer>().enabled = false;
}
// # 3
//If ArtMode Canvas ON
if (artModeCanvas0_)
{
createPoints.GetComponent<CreatePoints>().enabled = false;
}
// # 3
//If ArtMode Canvas Off
if (!artModeCanvas0_)
{
var GeneratedPlanes = GameObject.FindGameObjectsWithTag("Plane");
for (int j = 0; j < GeneratedPlanes.Length; j++)
{
GeneratedPlanes[j].GetComponent<MeshRenderer>().enabled = false;
}
var GeneratePointCloudExample = GameObject.FindGameObjectsWithTag("GeneratePointCloudExample");
for (int j = 0; j < GeneratePointCloudExample.Length; j++)
{
GeneratePointCloudExample[j].GetComponent<ParticleSystemRenderer>().enabled = false;
}
}
}
. Теперь я переключаюсь на использование IEnumerator, который работает, но работает медленно. Не уверен, почему при использовании обычной функции она не будет работать.
public void UpdateScreens_()
{
StartCoroutine(UpdateScreens());
}
IEnumerator UpdateScreens()
{
yield return new WaitForSeconds(0.5f);
Debug.Log("Hellllo");
// # 1
//If ArtSelection Canvas ON
if (PositionMasterController_.artSelectionCanvasOn)
{
var GeneratedPlanes = GameObject.FindGameObjectsWithTag("Plane");
for (int i = 0; i < GeneratedPlanes.Length; i++)
{
GeneratedPlanes[i].GetComponent<MeshRenderer>().enabled = false;
}
var GeneratePointCloudExample = GameObject.FindGameObjectsWithTag("GeneratePointCloudExample");
for (int i = 0; i < GeneratePointCloudExample.Length; i++)
{
GeneratePointCloudExample[i].GetComponent<ParticleSystemRenderer>().enabled = false;
}
sphere.GetComponent<MeshRenderer>().enabled = false;
}
// # 2
//If Measure Canvas ON
if (PositionMasterController_.measureCanvasOn)
{
Debug.Log("fuc2k");
var GeneratedPlanes = GameObject.FindGameObjectsWithTag("Plane");
for (int i = 0; i < GeneratedPlanes.Length; i++)
{
GeneratedPlanes[i].GetComponent<MeshRenderer>().enabled = false;
}
var GeneratePointCloudExample = GameObject.FindGameObjectsWithTag("GeneratePointCloudExample");
for (int i = 0; i < GeneratePointCloudExample.Length; i++)
{
GeneratePointCloudExample[i].GetComponent<ParticleSystemRenderer>().enabled = false;
}
Debug.Log("sphere should be ON");
createPoints.GetComponent<CreatePoints>().enabled = true;
sphere.GetComponent<MeshRenderer>().enabled = true;
}
if (!PositionMasterController_.measureCanvasOn)
{
Debug.Log("sphere should be OFF");
createPoints.GetComponent<CreatePoints>().enabled = false;
sphere.GetComponent<MeshRenderer>().enabled = false;
}
//# 3
// If ArtMode Canvas ON
if (PositionMasterController_.artModeCanvasOn)
{
var GeneratedPlanes = GameObject.FindGameObjectsWithTag("Plane");
for (int i = 0; i < GeneratedPlanes.Length; i++)
{
GeneratedPlanes[i].GetComponent<MeshRenderer>().enabled = true;
}
var GeneratePointCloudExample = GameObject.FindGameObjectsWithTag("GeneratePointCloudExample");
for (int i = 0; i < GeneratePointCloudExample.Length; i++)
{
GeneratePointCloudExample[i].GetComponent<ParticleSystemRenderer>().enabled = true;
}
}
////// # 3
//////If ArtMode Canvas Off
if (!PositionMasterController_.artModeCanvasOn)
{
var GeneratedPlanes = GameObject.FindGameObjectsWithTag("Plane");
for (int i = 0; i < GeneratedPlanes.Length; i++)
{
GeneratedPlanes[i].GetComponent<MeshRenderer>().enabled = false;
}
var GeneratePointCloudExample = GameObject.FindGameObjectsWithTag("GeneratePointCloudExample");
for (int i = 0; i < GeneratePointCloudExample.Length; i++)
{
GeneratePointCloudExample[i].GetComponent<ParticleSystemRenderer>().enabled = false;
}
}
}