private void NewNeironVoid() { GameObject clone = (GameObject)Instantiate(prefabNeiron, GizmaNeiron.transform.position, prefabNeiron.transform.rotation); foreach (GameObject AreaBouns in gameObject.GetComponent <ManagerArea>().hitArea) { if (AreaBouns.GetComponent <Collider>().bounds.Contains(clone.transform.position)) { clone.GetComponent <NeironScript>().Area = AreaBouns; AreaBouns.GetComponent <AreaScript>().amount++; break; } } if (clone.GetComponent <NeironScript>().Area == null) { clone.GetComponent <NeironScript> ().Area = GlobalArea; } clone.GetComponent <NeironScript>().Area.GetComponent <AreaScript>().amount++; clone.GetComponent <NeironScript>().TypeIndexNeiron = selNewGrid; EndIndexNeiron++; clone.GetComponent <NeironScript>().IndexNeiron = EndIndexNeiron; clone.name = "Neiron" + EndIndexNeiron; }
void OnGUI() { //............................................................................................................................... if (!AddNeironBool) { if (GUI.Button(new Rect(210, 10, 80, 20), "Edit")) { AddNeironBool = true; GizmaNeiron.transform.position = CamTarget.position; GizmaNeiron.SetActive(true); } } else { if (GUI.Button(new Rect(210, 10, 80, 20), "Add neuron")) { Collider[] hitColliders = Physics.OverlapSphere(GizmaNeiron.transform.position, 1f); bool ExistNeiron = false; foreach (Collider coll in hitColliders) { if (coll.tag == "Neiron") { ExistNeiron = true; break; } } if (!ExistNeiron) { NewNeironVoid(); AddNeironBool = false; GizmaNeiron.SetActive(false); } } if (GUI.Button(new Rect(291, 10, 50, 20), "END")) { AddNeironBool = false; GizmaNeiron.SetActive(false); } selNewGrid = GUI.SelectionGrid(new Rect(210, 31, 130, 20), selNewGrid, selStrings, selStrings.Length); } //.................................................................................................................................. if (Selektor != null) { GUI.Label(new Rect(200, 130, 200, 20), "Charge: " + Selektor.GetComponent <NeironScript>().Charge.ToString()); foreach (GameObject value in Selektor.GetComponent <NeironScript>().hitSinaps) { GameObject valueLevel = value.GetComponent <SinapsScript>().NeironTarget; Vector3 screenPosition = Camera.main.WorldToScreenPoint(valueLevel.transform.position); Vector3 cameraRelative = Camera.main.transform.InverseTransformPoint(valueLevel.transform.position); if (cameraRelative.z > 0) { Rect position = new Rect(screenPosition.x + 10f, Screen.height - screenPosition.y - 23f, 100f, 20f); GUI.Label(position, "" + value.GetComponent <SinapsScript>().Force.ToString("0.0")); } } GUI.Label(new Rect(5, 5, 180, 20), "Index neuron: " + Selektor.GetComponent <NeironScript>().IndexNeiron); selGridInt = GUI.SelectionGrid(new Rect(5, 30, 180, 20), selGridInt, selStrings, selStrings.Length); if (selGridInt != Selektor.GetComponent <NeironScript>().TypeIndexNeiron) { Selektor.GetComponent <NeironScript>().TypeIndexNeiron = selGridInt; } if (!AddSinapsBool) { if (GUI.Button(new Rect(5, 55, 180, 20), "Add synapse")) { AddSinapsBool = true; } } else { GUI.Label(new Rect(5, 55, 250, 20), "Select neuron on target synapse.."); } if (Selektor.GetComponent <NeironScript>().Area != null) { string AreaButton = ""; if (Selektor.GetComponent <NeironScript>().Area.GetComponent <AreaScript>().Global) { AreaButton = "Clear Global Area"; } else { AreaButton = "Clear Area"; GUI.Label(new Rect(5, 105, 180, 20), "" + Selektor.GetComponent <NeironScript>().Area.GetComponent <AreaScript>().Name); } if (GUI.Button(new Rect(5, 80, 180, 20), AreaButton)) { Selektor.GetComponent <NeironScript>().Area.GetComponent <AreaScript>().amount--; Selektor.GetComponent <NeironScript>().Area = null; } } else { if (GUI.Button(new Rect(5, 80, 180, 20), "Add Global Area")) { Selektor.GetComponent <NeironScript>().Area = GlobalArea; GlobalArea.GetComponent <AreaScript>().amount++; } if (GUI.Button(new Rect(5, 105, 180, 20), "Add Included Area")) { foreach (GameObject AreaBouns in gameObject.GetComponent <ManagerArea>().hitArea) { if (AreaBouns.GetComponent <Collider>().bounds.Contains(Selektor.transform.position)) { Selektor.GetComponent <NeironScript>().Area = AreaBouns; AreaBouns.GetComponent <AreaScript>().amount++; break; } if (Selektor.GetComponent <NeironScript>().Area == null) { Selektor.GetComponent <NeironScript>().Area = GlobalArea; } } } } GUILayout.BeginArea(new Rect(5, 130, 180, Screen.height - 160), GUI.skin.box); _inventoryScroll = GUILayout.BeginScrollView(_inventoryScroll, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true)); GUILayout.Label("Adder: " + Selektor.GetComponent <NeironScript>().Adder); GUILayout.Label("Max adder: "); MaxAdderString = GUILayout.TextField(MaxAdderString); GUILayout.Label("Damper: "); DampferAdderString = GUILayout.TextField(DampferAdderString); GUILayout.Label("Upper threshold:"); thresholdTopString = GUILayout.TextField(thresholdTopString); GUILayout.Label("Response time: "); AnswerTimeString = GUILayout.TextField(AnswerTimeString); GUILayout.Label("Time relax: "); TimeReposeString = GUILayout.TextField(TimeReposeString); if (Selektor.GetComponent <NeironScript>().TypeIndexNeiron > 0) { GUILayout.Label("____________________"); GUILayout.Label("t.Top + t.Bonus (t.Bonus)"); float t = Selektor.GetComponent <NeironScript>().thresholdTop + Selektor.GetComponent <NeironScript>().bonusThreshold; GUILayout.Label(" " + t + " (" + Selektor.GetComponent <NeironScript>().bonusThreshold + ")"); GUILayout.Label("Lower threshold"); thresholdDownString = GUILayout.TextField(thresholdDownString); GUILayout.Label("Negative time"); timeIgnoreString = GUILayout.TextField(timeIgnoreString); GUILayout.Label("Damper threshold"); DempferBonusThresholdString = GUILayout.TextField(DempferBonusThresholdString); GUILayout.Label("Valuation time"); TimeEvaluationString = GUILayout.TextField(TimeEvaluationString); GUILayout.Label("Limit repeats"); LimitRecurrenceString = GUILayout.TextField(LimitRecurrenceString); GUILayout.Label("Increasing threshold"); thresholdTopUpString = GUILayout.TextField(thresholdTopUpString); GUILayout.Label("Adaptation time"); AdaptationTimeString = GUILayout.TextField(AdaptationTimeString); GUILayout.Label("Basic threshold"); thresholdAdaptString = GUILayout.TextField(thresholdAdaptString); } if (Selektor.GetComponent <NeironScript>().TypeIndexNeiron == 2) { GUILayout.Label("____________________"); GUILayout.Label("Max force synapse:"); MaxForceSinapsString = GUILayout.TextField(MaxForceSinapsString); GUILayout.Label("Speed:"); TimeChargeString = GUILayout.TextField(TimeChargeString); FocusDinamicSetting = GUILayout.Toggle(FocusDinamicSetting, "Focus Dynamics"); if (FocusDinamicSetting) { GUILayout.Label("Focus: " + Selektor.GetComponent <NeironScript>().FocusNeiron.ToString()); GUILayout.Label("Max focus: "); MaxFocusNeironString = GUILayout.TextField(MaxFocusNeironString); GUILayout.Label("Focus step:"); StepFocusString = GUILayout.TextField(StepFocusString); } else { GUILayout.Label("Focus:"); FocusNeironString = GUILayout.TextField(FocusNeironString); } PlasticityDinamicSetting = GUILayout.Toggle(PlasticityDinamicSetting, "Plastic Dynamics"); if (PlasticityDinamicSetting) { GUILayout.Label("Plastic: " + Selektor.GetComponent <NeironScript>().Plasticity.ToString()); GUILayout.Label("Basic Plastic:"); BasicPlasticityString = GUILayout.TextField(BasicPlasticityString); GUILayout.Label("Plastic step:"); StepPlasticityString = GUILayout.TextField(StepPlasticityString); } else { GUILayout.Label("Plastic:"); PlasticityString = GUILayout.TextField(PlasticityString); GUILayout.Label("Basic Plastic:"); BasicPlasticityString = GUILayout.TextField(BasicPlasticityString); } NewNeironDinamicSetting = GUILayout.Toggle(NewNeironDinamicSetting, "Dynamic net"); } GUILayout.EndScrollView(); GUILayout.EndArea(); if (GUI.Button(new Rect(150, Screen.height - 25, 30, 20), "OK")) { Selektor.GetComponent <NeironScript>().MaxAdder = float.Parse(MaxAdderString); Selektor.GetComponent <NeironScript>().DampferAdder = float.Parse(DampferAdderString); Selektor.GetComponent <NeironScript>().thresholdTop = float.Parse(thresholdTopString); Selektor.GetComponent <NeironScript>().AnswerTime = float.Parse(AnswerTimeString); Selektor.GetComponent <NeironScript>().TimeRepose = float.Parse(TimeReposeString); Selektor.GetComponent <NeironScript>().thresholdDown = float.Parse(thresholdDownString); Selektor.GetComponent <NeironScript>().timeIgnore = float.Parse(timeIgnoreString); Selektor.GetComponent <NeironScript>().DempferBonusThreshold = float.Parse(DempferBonusThresholdString); Selektor.GetComponent <NeironScript>().TimeEvaluation = float.Parse(TimeEvaluationString); Selektor.GetComponent <NeironScript>().LimitRecurrence = int.Parse(LimitRecurrenceString); Selektor.GetComponent <NeironScript>().thresholdTopUp = float.Parse(thresholdTopUpString); Selektor.GetComponent <NeironScript>().AdaptationTime = float.Parse(AdaptationTimeString); Selektor.GetComponent <NeironScript>().thresholdAdapt = float.Parse(thresholdAdaptString); Selektor.GetComponent <NeironScript>().MaxForceSinaps = float.Parse(MaxForceSinapsString); Selektor.GetComponent <NeironScript>().TimeCharge = float.Parse(TimeChargeString); Selektor.GetComponent <NeironScript>().FocusNeiron = float.Parse(FocusNeironString); Selektor.GetComponent <NeironScript>().MaxFocus = float.Parse(MaxFocusNeironString); Selektor.GetComponent <NeironScript>().StepFocus = float.Parse(StepFocusString); Selektor.GetComponent <NeironScript>().Plasticity = float.Parse(PlasticityString); Selektor.GetComponent <NeironScript>().BasicPlasticity = float.Parse(BasicPlasticityString); Selektor.GetComponent <NeironScript>().StepPlasticity = float.Parse(StepPlasticityString); Selektor.GetComponent <NeironScript>().FocusDinamic = FocusDinamicSetting; Selektor.GetComponent <NeironScript>().PlasticityDinamic = PlasticityDinamicSetting; Selektor.GetComponent <NeironScript>().NewNeironDinamic = NewNeironDinamicSetting; } if (GUI.Button(new Rect(5, Screen.height - 25, 100, 20), "Delete neuron")) { DeleteNeiron(); } } if (WindowS) { WindowsRect = GUI.Window(0, WindowsRect, DoMyWindow, ""); } }