void HideAllSigns(bool hide) { for (int i = 0; i < numSigns; i++) { SignWithRing sign = SignAtIndex(i); sign.Show(!hide); } }
public static SignWithRing Make(float radius, Material signMat, Texture signTexture, Material ringMat, float scale, bool hasRing) { GameObject gob = new GameObject("Sign"); SignWithRing result = gob.AddComponent <SignWithRing>(); // deep clone the material signMat = Instantiate(signMat) as Material; signMat.mainTexture = signTexture; result.Setup(radius, signMat, ringMat, scale, hasRing); return(result); }
void Next() { if (showAllMode) { if ((index % numSigns) == 0) { AppCentral.APP.ShowLookdownNotifier(); } RotateToIndex(index); index++; } else { HideAllSigns(true); SignWithRing sign = SignAtIndex(index); if (sign != null) { sign.Show(true); RotateToIndex(index); index++; } else // failed, so show them all { index = 0; AppCentral.APP.ShowLookdownNotifier(); HideAllSigns(false); showAllMode = true; Next(); } } }
SignWithRing SignAtIndex(int index) { if (signs_private == null) { signs_private = new List <SignWithRing>(); for (int i = 0; i < numSigns; i++) { GameObject result = null; // parent it all together so we can move it to stay z distance from camera, and so it gets deleted properly float radius = RadiusForIndex(i); Material ringMat = goodMaterial; if (radius < 1f || radius > 5) { ringMat = warningMaterial; } SignWithRing sign = SignWithRing.Make(radius, signMaterial, SignTextureForIndex(i), ringMat, ScaleForIndex(i), i != 0); signs_private.Add(sign); result = sign.gameObject; result.transform.Rotate(new Vector3(0, DegressForIndex(i), 0f)); result.transform.parent = GetSignAnchor().transform; } } if (index >= 0 && index < signs_private.Count) { return(signs_private[index]); } return(null); }