06.07.2022

This commit is contained in:
Plotnikov
2022-07-06 12:36:49 +03:00
parent 696daa0b2e
commit b0a0566f19
32 changed files with 5 additions and 39308 deletions

View File

@@ -1,4 +1,3 @@
<<<<<<< HEAD
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
@@ -255,261 +254,3 @@ public class MakeActive : MonoBehaviour //, IPointerEnterHandler
}
}
}
=======
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
using System.Linq;
public class MakeActive : MonoBehaviour //, IPointerEnterHandler
{
// public Color _defaultRender;
Material activeMaterial;
public Dictionary<string, GameObject> switchesList3D = new Dictionary<string, GameObject>(); // Обычные переключатели 3D
public Dictionary<string, GameObject> switchesList3Dh = new Dictionary<string, GameObject>(); // Переключатели 3D горизонтальные
public List<Material> materials = new List<Material>();
public List<Material> greenMaterials = new List<Material>();
public Renderer[] renderers;
public bool materialsReplaced = false;
Manager man;
public Material door_03_rend;
public Material door_03_mat;
//**** для подсказок
private GameObject hint3D;
public GameObject go;
private string t;
private GameObject canvasM;
//****
//void Start() // Вернуть потом назад
public void Start()
{
activeMaterial = Resources.Load<Material>("materials/Зелен");
man = GameObject.Find("Manager").GetComponent<Manager>();
//Debug.Log(activeMaterial);
renderers = this.transform.parent.GetComponentsInChildren<Renderer>();
RecordChildrenMaterials();
FindAndAddCoverVertical(); //Ищем крышки которые поворачиваются вертикально по тегу и вешаем скрипт поворота
FindAndAddCoverHorizontal(); //Ищем крышки которые поворачиваются горизонтально по тегу и вешаем скрипт поворота
FindAndAddSwitchVertikal(); //Ищем переключатели, вешаем скрипт поворота Switch3DRotate.cs
FindAndAddSwitchHorizontal();
canvasM = GameObject.Find("CanvasMenu");
go = man.prefabHint;
t = "";
foreach (KeyValuePair<string, string> p in panelName.allPanelsList)
{
if (String.Compare(p.Key, this.transform.parent.name) == 0)
{
t = panelName.allPanelsList[this.transform.parent.name];
}
}
}
//private void OnMouseEnter()
public void OnMouseEnter()
{
/* foreach (Transform child in this.transform.parent) //получить всех детей
{
//_defaultRender = child.GetComponent<Renderer>().material.color;
// child.GetComponent<Renderer>().material.color = Color.green;
}*/
ReplaceMaterialsWithActive();
//if (man.mode == "scedit" || man.mode == "play") return;
if (hint.IsHint && t != "")
{
hint3D = OnHint(this.gameObject, go, t);
}
}
public GameObject OnHint(GameObject btn, GameObject objGo, string t)
{
Vector3 mousePos = Input.mousePosition;
Vector2 hintPos = new Vector2(mousePos.x, mousePos.y);
GameObject hintObj = Instantiate(objGo, canvasM.transform);
hintObj.transform.position = hintPos;
Text txt = hintObj.GetComponentInChildren<Text>();
txt.text = t;
var hintBase = hintObj.GetComponentInChildren<Image>();
var s = txt.text.Length;
var upper = 0;
foreach (char letter in t.Where(char.IsUpper))
upper++;
var sizeX = (s- upper) * 11.2f+(upper*15.5f);
if ((sizeX + hintBase.transform.position.x) > 1920)
{
float pos = hintObj.transform.localPosition.x - sizeX;
if (pos < 0) pos = -30;
hintObj.transform.localPosition = new Vector2(pos, hintObj.transform.localPosition.y);
}
return hintObj;
}
//private void OnMouseExit()
public void OnMouseExit()
{
if (!hlight.l)
{
RestoreChildrenMaterials();
}
Destroy(hint3D);
}
private void RecordChildrenMaterials()
{
materials.Clear(); greenMaterials.Clear();
foreach (var renderer in renderers)
{
materials.Add(renderer.material);
if (this.name == "door_03")
{
Material[] door_03_rend = GameObject.Find("Copter/Fuzeliazh/Door_03/door_03").GetComponent<Renderer>().materials;
Material greenMat = new Material(door_03_rend[1]);
greenMat.SetColor("_EmissionColor", new Color(9f / 255f, 82f / 255f, 4f / 255f));
greenMaterials.Add(greenMat);
}
else if (this.name == "door_04")
{
Material[] door_04_rend = GameObject.Find("Copter/Fuzeliazh/Door_04/door_04").GetComponent<Renderer>().materials;
Material greenMat = new Material(door_04_rend[1]);
greenMat.SetColor("_EmissionColor", new Color(9f / 255f, 82f / 255f, 4f / 255f));
greenMaterials.Add(greenMat);
}
else
{
Material greenMat = new Material(renderer.material); //activeMaterial // renderer.material
greenMat.SetColor("_EmissionColor", new Color(9f / 255f, 82f / 255f, 4f / 255f));
greenMaterials.Add(greenMat);
}
}
}
public void RestoreChildrenMaterials()
{
for (int i = 0; i < renderers.Length; i++)
{
renderers[i].material = materials[i];
}
materialsReplaced = false;
}
public void ReplaceMaterialsWithActive()
{
//Debug.Log("ReplaceMaterialsWithActive: " + this.name);
if (activeMaterial != null)
{
for (int i = 0; i < renderers.Length; i++)
renderers[i].material = greenMaterials[i]; // = activeMaterial;
}
else
{
Debug.LogError("Active Material is not set!");
}
materialsReplaced = true;
}
void OnMouseDown()
{
if (man.mode == "scedit" || man.mode == "play") return;
// Скрываем люки под которыми спрятаны панели. Еще не решили нужно ли
if (this.transform.parent.gameObject.name == "Group019" || this.transform.parent.gameObject.name == "Group020") this.transform.parent.gameObject.SetActive(false);
//if (man.mode == "scedit") return;
//Debug.Log(this.transform.parent.name + " кликаю панель");
//Здесь проверку на not null сделать. Не все активные области являются панелями.
if (string.Compare(this.transform.parent.name.Substring(this.transform.parent.name.Length - 2), "3D") == 0 && this.transform.parent.name != null)
{
string panel2d = this.transform.parent.name.Substring(0, this.transform.parent.name.Length - 3);
//Debug.Log("MakeActive: " + panel2d);
// Может тут подвязать наш канвас и обзорку Максима
//man.cabines2d.SetActive(true);
//man.canvas.SetActive(true);
//man.fusel.SetActive(false);
man.SwitchTo2D(panel2d);
}
}
private void FindAndAddCoverVertical()
{
string s1 = this.transform.parent.name.Substring(this.transform.parent.name.Length - 7); // окончание названия панели например 0506_3D
string s2 = "Cover";
GameObject[] cover3Dv = GameObject.FindGameObjectsWithTag("cover3Dv");
foreach (GameObject _cover3Dv in cover3Dv)
{
if (_cover3Dv.name.EndsWith(s1) && _cover3Dv.name.StartsWith(s2))
{
//Debug.Log(_cover3Dv.name);
_cover3Dv.AddComponent<Cover3DVrotate>();
//switchesList3D.Add(sw.name, sw);
}
}
}
private void FindAndAddCoverHorizontal()
{
string s1 = this.transform.parent.name.Substring(this.transform.parent.name.Length - 7); // окончание названия панели например 0506_3D
string s2 = "Cover";
GameObject[] cover3Dh = GameObject.FindGameObjectsWithTag("cover3Dh");
foreach (GameObject _cover3Dh in cover3Dh)
{
if (_cover3Dh.name.EndsWith(s1) && _cover3Dh.name.StartsWith(s2))
{
//Debug.Log(_cover3Dh.name);
_cover3Dh.AddComponent<Cover3DHrotate>();
//_cover3Dh.AddComponent<Animation>();
//switchesList3D.Add(sw.name, sw);
}
}
}
private void FindAndAddSwitchVertikal()
{
string s1 = this.transform.parent.name.Substring(this.transform.parent.name.Length - 7); // окончание названия панели например 0506_3D
string s2 = "Tumbler";
GameObject[] switches3D = GameObject.FindGameObjectsWithTag("toggle3D");
foreach (GameObject sw in switches3D)
{
if (sw.name.EndsWith(s1) && sw.name.StartsWith(s2))
{
//Debug.Log(sw.name);
sw.AddComponent<Switch3DRotate>();
switchesList3D.Add(sw.name, sw);
}
}
}
private void FindAndAddSwitchHorizontal()
{
string s1 = this.transform.parent.name.Substring(this.transform.parent.name.Length - 7); // окончание названия панели например 0506_3D
string s2 = "Tumbler";
GameObject[] switches3Dh = GameObject.FindGameObjectsWithTag("toggle3Dh");
foreach (GameObject _switches3Dh in switches3Dh)
{
if (_switches3Dh.name.EndsWith(s1) && _switches3Dh.name.StartsWith(s2))
{
//Debug.Log(sw.name);
_switches3Dh.AddComponent<Switch3DHRotate>();
switchesList3Dh.Add(_switches3Dh.name, _switches3Dh);
}
}
}
}
>>>>>>> 3b1b9479a46e90d056b92897ea9f8422b25fc052