Beispiel #1
0
    /// <summary>
    /// Merges faces of the same side.
    /// </summary>
    /// <param name="o">pb_object to merge faces</param>
    /// <param name="side">Coordinate distance to side being used.</param>
    /// <param name="v">Vector value of the coordinate that indicates side</param>
    /// <param name="useRotation">Whether or not to merge all sides with same vector value v</param>
    /// <returns></returns>
    public static int MergeFacesOfSameSide(pb_Object o, float side, VectorValue v, bool useRotation = false)
    {
        List <pb_Face> mergeableFaces = new List <pb_Face>();

        foreach (pb_Face f in o.faces)
        {
            bool sameSide = true;
            if (useRotation)
            {
                switch (v)
                {
                case VectorValue.z:
                    side = o.vertices[f.indices[0]].z;
                    break;

                case VectorValue.y:
                    side = o.vertices[f.indices[0]].y;
                    break;

                case VectorValue.x:
                default:
                    side = o.vertices[f.indices[0]].x;
                    break;
                }
            }
            float delta = 0.01f;
            foreach (int index in f.indices)
            {
                switch (v)
                {
                case VectorValue.z:
                    sameSide = sameSide && Mathf.Abs(o.vertices[index].z - side) < delta;
                    break;

                case VectorValue.y:
                    sameSide = sameSide && Mathf.Abs(o.vertices[index].y - side) < delta;
                    break;

                case VectorValue.x:
                default:
                    sameSide = sameSide && Mathf.Abs(o.vertices[index].x - side) < delta;
                    break;
                }
            }

            if (sameSide)
            {
                mergeableFaces.Add(f);
            }
        }

        if (mergeableFaces.Count > 1)
        {
            pb_Face[] faces = mergeableFaces.ToArray();
            o.MergeFaces(faces);
            return(1);
        }

        return(0);
    }
Beispiel #2
0
 private VectorValue GetScreenFillAspect()
 {
     if (_screenFillAspect == null)
     {
         _screenFillAspect = new VectorValue(name + FILL_ASPECT_RATION_SUFFIX);
     }
     return(_screenFillAspect);
 }
Beispiel #3
0
    public static void CreateMyAsset()
    {
        VectorValue asset = ScriptableObject.CreateInstance <VectorValue>();

        AssetDatabase.CreateAsset(asset, "Assets/Scripts/ScriptableObject/NewScripableObject.asset");
        AssetDatabase.SaveAssets();

        EditorUtility.FocusProjectWindow();

        Selection.activeObject = asset;
    }
Beispiel #4
0
 public SaveManager(Vector2 savePosition, VectorValue maxPositionMap, VectorValue minPositionMap, VectorValue resetMaxPosition,
                    VectorValue resetMinPosition, SaveItem.Items saveItemManager, SaveInventory.Counts saveInventoryManager, SavePuzzle.Puzzles savePuzzleManager)
 {
     this.savePosition         = savePosition;
     this.maxPositionMap       = maxPositionMap.initialValue;
     this.minPositionMap       = minPositionMap.initialValue;
     this.resetMaxPosition     = resetMaxPosition.initialValue;
     this.resetMinPosition     = resetMinPosition.initialValue;
     this.saveItemManager      = saveItemManager.saveItems;
     this.saveInventoryManager = saveInventoryManager.saveCounts;
     this.savePuzzleManager    = savePuzzleManager.savePuzzles;
 }
Beispiel #5
0
    public void DownloadVectors()
    {
        bool   flag;
        string url = "http://wonseokdotnet2.azurewebsites.net/GameAccess/GetVector/";

        string _url = url + myName + "/";

        using (var client = new WebClient())
        {
            var         json = client.DownloadString(_url);
            VectorValue vv   = new VectorValue(json);
            Debug.Log("NAME IS THIS? " + myName);
            transform.position = new Vector3(vv.x, vv.y, vv.z);
        }
        num = 0;
        GameSocketManager.Socket.On("Locations", (data) =>
        {
            Debug.Log("Socket is online at locations");
            JArray array = JArray.Parse((string)data.Json.args[0]);
            for (int i = 0; i < array.Count; i++)
            {
                if (array[i][0].ToString() == ONLOAD.mail)
                {
                    continue;
                }
                Debug.Log(array[i][0].ToString() + " " + array[i][1].ToString() + " " + array[i][2] + " " + array[i][3]);
                for (int j = 0; j < array.Count; j++)
                {
                    Debug.Log("I'm here");
                    if (j > DataMembers.Count - 1) // 1 > -1
                    {
                        Debug.Log("This is null!");
                        LoginMembers tmp = new LoginMembers(array[i][0].ToString(), (int)array[i][1], (int)array[i][2], (int)array[i][3], tmpObj);

                        DataMembers.Add(tmp);
                        break;
                    }
                    var m = DataMembers[j];
                    Debug.Log("Let's find it!");
                    if (m.isName(array[i][0].ToString()) && array[i][0].ToString() != ONLOAD.mail)
                    {
                        Debug.Log("Found it!");
                        //m.sphere.transform.position = new Vector3(m.x, m.y, m.z);
                        m.x = (int)array[i][1]; m.y = (int)array[i][2]; m.z = (int)array[i][3];
                        break;
                    }
                    Debug.Log("Why I am here~?");
                }
            }
        });
    }
Beispiel #6
0
        public static bool edit(this Material mat, VectorValue property, string name = null)
        {
            var val = mat.Get(property);

            if (name.IsNullOrEmpty())
            {
                name = property.NameForDisplayPEGI();
            }

            if (name.edit(ref val))
            {
                mat.Set(property, val);
                return(true);
            }

            return(false);
        }
Beispiel #7
0
        internal static void OnSliderControlChanged(float value, Slider slider, ControlType controlType, VectorValue vectorValue)
        {
            if (value == 0)
            {
                s_sliderChangedWanted = false;
            }
            else
            {
                if (!s_sliderChangedWanted)
                {
                    s_sliderChangedWanted    = true;
                    s_currentSlider          = slider;
                    s_currentSliderType      = controlType;
                    s_currentSliderValueType = vectorValue;
                }

                s_currentSliderValue = value;
            }
        }
Beispiel #8
0
    public void DownloadVectors()
    {
        bool   flag;
        string url = "http://wonseokdotnet2.azurewebsites.net/GameAccess/GetVector/";

        foreach (VectorValue i in ClientLists)
        {
            string _url = url + i.name + "/";
            using (var client = new WebClient())
            {
                var         json = client.DownloadString(_url);
                VectorValue vv   = new VectorValue(json);
                Debug.Log("NAME IS THIS? " + NAME);
                if (i.name == NAME)
                {
                    Ball.position = new Vector3(vv.x, vv.y, vv.z);
                }
            }
        }
    }
Beispiel #9
0
        internal static void OnVectorControlInputApplied(ControlType controlType, VectorValue vectorValue)
        {
            if (!(InspectorManager.Instance.m_activeInspector is GameObjectInspector instance))
            {
                return;
            }

            // get relevant input for controltype + value

            InputField[] inputs = null;
            switch (controlType)
            {
            case ControlType.position:
                inputs = s_positionControl.inputs; break;

            case ControlType.localPosition:
                inputs = s_localPosControl.inputs; break;

            case ControlType.eulerAngles:
                inputs = s_rotationControl.inputs; break;

            case ControlType.localScale:
                inputs = s_scaleControl.inputs; break;
            }
            InputField input = inputs[(int)vectorValue];

            float val = float.Parse(input.text);

            // apply transform value

            Vector3 vector    = Vector3.zero;
            var     transform = instance.TargetGO.transform;

            switch (controlType)
            {
            case ControlType.position:
                vector = transform.position; break;

            case ControlType.localPosition:
                vector = transform.localPosition; break;

            case ControlType.eulerAngles:
                vector = transform.eulerAngles; break;

            case ControlType.localScale:
                vector = transform.localScale; break;
            }

            switch (vectorValue)
            {
            case VectorValue.x:
                vector.x = val; break;

            case VectorValue.y:
                vector.y = val; break;

            case VectorValue.z:
                vector.z = val; break;
            }

            // set back to transform
            switch (controlType)
            {
            case ControlType.position:
                transform.position = vector; break;

            case ControlType.localPosition:
                transform.localPosition = vector; break;

            case ControlType.eulerAngles:
                transform.eulerAngles = vector; break;

            case ControlType.localScale:
                transform.localScale = vector; break;
            }
        }
Beispiel #10
0
        internal GameObject ConstructEditorRow(GameObject parent, ControlEditor editor, ControlType type, VectorValue vectorValue)
        {
            var rowObject = UIFactory.CreateHorizontalGroup(parent, new Color(1, 1, 1, 0));
            var rowGroup  = rowObject.GetComponent <HorizontalLayoutGroup>();

            rowGroup.childForceExpandWidth  = false;
            rowGroup.childControlWidth      = true;
            rowGroup.childForceExpandHeight = false;
            rowGroup.childControlHeight     = true;
            rowGroup.spacing = 5;
            var rowLayout = rowObject.AddComponent <LayoutElement>();

            rowLayout.minHeight      = 25;
            rowLayout.flexibleHeight = 0;
            rowLayout.minWidth       = 100;

            // Value labels

            var labelObj  = UIFactory.CreateLabel(rowObject, TextAnchor.MiddleLeft);
            var labelText = labelObj.GetComponent <Text>();

            labelText.color                = Color.cyan;
            labelText.text                 = $"{vectorValue.ToString().ToUpper()}:";
            labelText.fontSize             = 14;
            labelText.resizeTextMaxSize    = 14;
            labelText.resizeTextForBestFit = true;
            var labelLayout = labelObj.AddComponent <LayoutElement>();

            labelLayout.minHeight      = 25;
            labelLayout.flexibleHeight = 0;
            labelLayout.minWidth       = 25;
            labelLayout.flexibleWidth  = 0;

            // actual value label
            var valueLabelObj = UIFactory.CreateLabel(rowObject, TextAnchor.MiddleLeft);
            var valueLabel    = valueLabelObj.GetComponent <Text>();

            editor.values[(int)vectorValue] = valueLabel;
            var valueLabelLayout = valueLabelObj.AddComponent <LayoutElement>();

            valueLabelLayout.minWidth      = 85;
            valueLabelLayout.flexibleWidth = 0;
            valueLabelLayout.minHeight     = 25;

            // input field

            var inputHolder      = UIFactory.CreateVerticalGroup(rowObject, new Color(1, 1, 1, 0));
            var inputHolderGroup = inputHolder.GetComponent <VerticalLayoutGroup>();

            inputHolderGroup.childForceExpandHeight = false;
            inputHolderGroup.childControlHeight     = true;
            inputHolderGroup.childForceExpandWidth  = false;
            inputHolderGroup.childControlWidth      = true;

            var inputObj = UIFactory.CreateInputField(inputHolder);
            var input    = inputObj.GetComponent <InputField>();

            input.characterValidation = InputField.CharacterValidation.Decimal;

            var inputLayout = inputObj.AddComponent <LayoutElement>();

            inputLayout.minHeight      = 25;
            inputLayout.flexibleHeight = 0;
            inputLayout.minWidth       = 90;
            inputLayout.flexibleWidth  = 50;

            editor.inputs[(int)vectorValue] = input;

            // apply button

            var applyBtnObj = UIFactory.CreateButton(rowObject);
            var applyBtn    = applyBtnObj.GetComponent <Button>();
            var applyText   = applyBtnObj.GetComponentInChildren <Text>();

            applyText.text     = "Apply";
            applyText.fontSize = 14;
            var applyLayout = applyBtnObj.AddComponent <LayoutElement>();

            applyLayout.minWidth  = 60;
            applyLayout.minHeight = 25;

            applyBtn.onClick.AddListener(() => { OnVectorControlInputApplied(type, vectorValue); });

            // Slider

            var sliderObj = UIFactory.CreateSlider(rowObject);

            sliderObj.transform.Find("Fill Area").gameObject.SetActive(false);
            var sliderLayout = sliderObj.AddComponent <LayoutElement>();

            sliderLayout.minHeight      = 20;
            sliderLayout.flexibleHeight = 0;
            sliderLayout.minWidth       = 200;
            sliderLayout.flexibleWidth  = 9000;
            var slider       = sliderObj.GetComponent <Slider>();
            var sliderColors = slider.colors;

            sliderColors.normalColor = new Color(0.65f, 0.65f, 0.65f);
            slider.colors            = sliderColors;
            slider.minValue          = -2;
            slider.maxValue          = 2;
            slider.value             = 0;
            slider.onValueChanged.AddListener((float val) => { OnSliderControlChanged(val, slider, type, vectorValue); });
            editor.sliders[(int)vectorValue] = slider;

            return(rowObject);
        }
Beispiel #11
0
 public void FadeToLevel(SceneInfo info, int enterNo, VectorValue position)
 {
     position.value = info.enterPoints[enterNo];
     sceneNo        = info.number;
     anim.SetTrigger("Fade");
 }
Beispiel #12
0
 public static void SaveData(VectorValue player, Vector2 playerPosition, Vector2Value camera, Vector2 cameraMinPosition, Vector2 cameraMaxPosition)
 {
     player.initialValue = playerPosition;
     camera.minValue     = cameraMinPosition;
     camera.maxValue     = cameraMaxPosition;
 }