상속: MonoBehaviour
예제 #1
0
    void HideAllSigns(bool hide)
    {
        for (int i = 0; i < numSigns; i++)
        {
            SignWithRing sign = SignAtIndex(i);

            sign.Show(!hide);
        }
    }
예제 #2
0
    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);
    }
예제 #3
0
    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();
            }
        }
    }
예제 #4
0
    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);
    }