04.07.2022

This commit is contained in:
Plotnikov
2022-07-04 13:15:35 +03:00
parent 5fad2bcf6b
commit 696daa0b2e
7224 changed files with 3814576 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cover3DHrotate : MonoBehaviour
{
/* private string animationName = "horLeft";
Animation anim;
AnimationClip open;*/
// Start is called before the first frame update
public int numpos;
[SerializeField]
float eulerAngX;
[SerializeField]
float eulerAngY;
[SerializeField]
float eulerAngZ;
public float angle = 80;
void Start()
{
//anim = GetComponent<Animation>();
//anim.Play("horLeft");
//AnimationClip open = anim.GetClip("horLeft");
//Debug.Log("загрузил " + open);
//.Play("horLeft");
//anim.Play(open.name);
//anim.Play("horLeft");
eulerAngX = transform.localEulerAngles.x;
eulerAngY = transform.localEulerAngles.y;
eulerAngZ = transform.localEulerAngles.z;
}
void OnMouseDown()
{
//this.GetComponent<Animation>().Play(animationName);
////anim.Play();
/*if (!animation.IsPlaying(animationName))
{
animation.Play(animationName);
}
Debug.Log("Cube " + this.name + " clicked!");*/
}
public void RotateH(int numpos)
{
if (eulerAngX != 0 && eulerAngX > 0 && eulerAngX < 360)
{
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX + angle, eulerAngY, eulerAngZ);
//if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY, eulerAngZ);
}
else if (eulerAngY != 0 && eulerAngY > 0 && eulerAngY < 360)
{
if (numpos == 1 && this.name != "Cover1_0203_3D" && this.name != "Cover1_0201_3D")
this.transform.localRotation = Quaternion.Euler(eulerAngX + angle, eulerAngY, eulerAngZ);
//if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY, eulerAngZ);
else
this.transform.localRotation = Quaternion.Euler(eulerAngX - angle, eulerAngY, eulerAngZ); // Делаем исключение для вращаемых крышек 0203 и 0201, которые в другую сторону поворачиваем
}
else if (eulerAngZ != 0 && eulerAngZ > 0 && eulerAngZ < 360)
{
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX + angle, eulerAngY, eulerAngZ);
}
if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY, eulerAngZ);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e05fb5d535f9bf84c882933bb13daf58
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,50 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cover3DVrotate : MonoBehaviour
{
public int numpos;
[SerializeField]
float eulerAngX;
[SerializeField]
float eulerAngY;
[SerializeField]
float eulerAngZ;
public float angle = 80;
void Start()
{
eulerAngX = transform.localEulerAngles.x;
eulerAngY = transform.localEulerAngles.y;
eulerAngZ = transform.localEulerAngles.z;
}
public void Rotate(int numpos)
{
if (numpos == 1 && this.name == "Cover1_0701_3D" || this.name == "Cover2_0701_3D")
this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY + angle, eulerAngZ);
else if (numpos == 1 && this.name == "Cover1_0702_3D" || this.name == "Cover2_0702_3D")
this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY - angle, eulerAngZ);
else if (numpos == 1 && this.name == "Cover3_0701_3D" || this.name == "Cover3_0702_3D")
this.transform.localRotation = Quaternion.Euler(eulerAngX-2*angle, eulerAngY, eulerAngZ);
else if (eulerAngX != 0 && eulerAngX >0 && eulerAngX < 360)
{
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX + angle, eulerAngY, eulerAngZ);
//if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY, eulerAngZ);
}
else if (eulerAngY != 0 && eulerAngY > 0 && eulerAngY < 360)
{
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY + angle, eulerAngZ);
//if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY, eulerAngZ);
}
else if (eulerAngZ != 0 && eulerAngZ > 0 && eulerAngZ < 360)
{
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY, eulerAngZ + angle);
}
if (numpos == 2)
this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY, eulerAngZ);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b201e97c6020152439cc4fd26197b225
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,515 @@
<<<<<<< HEAD
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);
}
}
}
}
=======
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

View File

@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 3936cb98fd2f75e42ba779b89f806ed6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences:
- activeMaterial: {fileID: 2100000, guid: 93d259866b183904db724121a23f0dfb, type: 2}
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,36 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OverWriteMaterial
{
public static void RecordChildrenMaterials(Renderer[] renderers, ref List<Material> materials, ref List<Material> greenMaterials)
{
materials.Clear(); greenMaterials.Clear();
foreach (var renderer in renderers)
{
materials.Add(renderer.material);
Material greenMat = new Material(renderer.material);
greenMat.SetColor("_EmissionColor", new Color(9f / 255f, 82f / 255f, 4f / 255f));
greenMaterials.Add(greenMat);
}
}
public static void RestoreChildrenMaterials(Renderer[] renderers, List<Material> materials)
{
for (int i = 0; i < renderers.Length; i++)
{
renderers[i].material = materials[i];
}
}
public static void ReplaceMaterialsWithActive(Renderer[] renderers, List<Material> greenMaterials)
{
for (int i = 0; i < renderers.Length; i++)
{
renderers[i].material = greenMaterials[i];
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f65cb7c4c674b354082b28a92f4af942
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,63 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Switch3DHRotate : MonoBehaviour
{
public int pos;
public int numpos;
[SerializeField]
float eulerAngX;
[SerializeField]
float eulerAngY;
[SerializeField]
float eulerAngZ;
public float angle = 30;
bool isStarted = false;
// Start is called before the first frame update
void Start()
{
if (isStarted) return;
eulerAngX = transform.localEulerAngles.x;
eulerAngY = transform.localEulerAngles.y;
eulerAngZ = transform.localEulerAngles.z;
isStarted = true;
//if (this.name == "Tumbler2_0109_3D")
//{
// Debug.Log("START Tumbler2_0109_3D: eulerAng " + eulerAngX + " " + eulerAngY + " " + eulerAngZ);
//}
}
public void RotateHorizontalSwitch(int numpos) //int pos,
{
//Debug.Log(pos);
/* if (pos == 5)
{
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX + 0, eulerAngY + 0, 0);
if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX + 30, eulerAngY + 0, 0);
if (numpos == 3) this.transform.localRotation = Quaternion.Euler(eulerAngX + 0, eulerAngY + 30, 0);
if (numpos == 4) this.transform.localRotation = Quaternion.Euler(eulerAngX - 30, eulerAngY + 0, 0);
if (numpos == 5) this.transform.localRotation = Quaternion.Euler(eulerAngX + 0, eulerAngY - 30, 0);
}
if (pos == 2)
{
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX + angle, eulerAngY , eulerAngZ + 0);
if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX - angle, eulerAngY , eulerAngZ + 0);
}*/
if (!isStarted) Start();
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX - angle + 10, eulerAngY, eulerAngZ); // право
if (numpos == 0) this.transform.localRotation = Quaternion.Euler(eulerAngX+angle + 10, eulerAngY, eulerAngZ); // лево
if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX + 10, eulerAngY, eulerAngZ); // центр
if (numpos > 2)
Debug.Log("Switch3DHRotate error: numpos > 2");
//if (this.name == "Tumbler2_0109_3D")
//{
// Debug.Log("Tumbler2_0109_3D: localRotation " + this.transform.localEulerAngles.x + " " + this.transform.localEulerAngles.y + " " + this.transform.localEulerAngles.z + " " +
// " eulerAng " + eulerAngX + " " + eulerAngY + " " + eulerAngZ + " ");
//}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: eebfec330c9e2c74d82df8670011e82d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,72 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Switch3DRotate : MonoBehaviour
{
//public int pos;
public int numpos;
[SerializeField]
float eulerAngX ;
[SerializeField]
float eulerAngY ;
[SerializeField]
float eulerAngZ ;
public float angle = 30;
bool isStarted = false;
void Start()
{
if (isStarted) return;
//Debug.Log( this.name + " На ком висим");
// Задаем текущий Rotation объекта по осям
eulerAngX = transform.localEulerAngles.x;
eulerAngY = transform.localEulerAngles.y;
eulerAngZ = transform.localEulerAngles.z;
isStarted = true;
}
public void RotateVertikalSwitch(int numpos) //int pos,
{
//Debug.Log(pos + " сколько позиций");
//Debug.Log(this.name + " кто");
// !!!!!!!!!!!!! Исправить !!!! У нас rotation по Y
/* if (pos == 5)
{
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX+0, eulerAngY+0, 0);
if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX+30, eulerAngY+0, 0);
if (numpos == 3) this.transform.localRotation = Quaternion.Euler(eulerAngX+0, eulerAngY+30, 0);
if (numpos == 4) this.transform.localRotation = Quaternion.Euler(eulerAngX-30, eulerAngY+0, 0);
if (numpos == 5) this.transform.localRotation = Quaternion.Euler(eulerAngX+0, eulerAngY-30, 0);
}
if (pos == 2)
{
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX,eulerAngY-30, eulerAngZ+0);
if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX,eulerAngY+30, eulerAngZ+0);
}
if (pos == 3)
{
if (numpos == 3) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY+30, eulerAngZ+0);
if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY-30, eulerAngZ+0);
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX,eulerAngY+0, eulerAngZ+0);
}*/
/* Вариант последний после правок Кирилла по двум передаваемым параметрам,которые заменили на один
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY + 30 + 10, eulerAngZ + 0); // вверх
if (numpos == 0) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY - 30 + 10, eulerAngZ + 0); // вниз
if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY + 0 +10, eulerAngZ + 0); // центр
if (numpos > 3) // upd if (numpos > 2) нумерация концовок названий спрайтов с 1 начинается
Debug.Log("Switch3DRotate error: numpos > 3");
*/
if (!isStarted) Start();
if (numpos == 1) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY + 30 + 10, eulerAngZ + 0); // вверх
if (numpos == 0) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY - 30 + 10, eulerAngZ + 0); // вниз
if (numpos == 2) this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY + 0 + 10, eulerAngZ + 0); // центр
if (numpos > 2) Debug.Log("Switch3DRotate error: numpos > 3");
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 821505d84cadcc34fac72f738c432572
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,66 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class clickPanel : MonoBehaviour
{
public Color _defaultRender;
public Dictionary<string, GameObject> switchesList3D = new Dictionary<string, GameObject>(); // Обычные переключатели 3D
void Start()
{
/* Mesh myMesh = this.GetComponent<MeshFilter>().mesh;
DestroyImmediate(this.GetComponent<MeshCollider>());
var collider = this.gameObject.AddComponent<MeshCollider>();
collider.sharedMesh = myMesh; */
string s1 = this.name.Substring(this.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);
//Debug.Log("Имена 3D переключателей " + sw.name);
//Debug.Log("Кол-во 3D переключателей " + switches3D.Length);
}
}
//Debug.Log(this.name + " Имя этой панели");
}
void OnMouseDown()
{
Debug.Log(this.name + " кликаю панель");
if (string.Compare(this.name.Substring(this.name.Length - 2), "3D") == 0 && this.name != null)
{
string panel2d = this.name.Substring(0, this.name.Length - 3);
GameObject manager = GameObject.Find("Manager");
manager.GetComponent<Manager>().SwitchTo2D(panel2d);
}
}
void OnMouseEnter()
{
_defaultRender = GetComponent<Renderer>().material.color;
GetComponent<Renderer>().material.color = Color.green;
}
void OnMouseExit()
{
GetComponent<Renderer>().material.color = _defaultRender;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f9ecb01ec038da645a13902ccdfd5aa2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,58 @@
/*
Скрипт вращения 3D педалей
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class rotate3DPedals : MonoBehaviour
{
[SerializeField]
float eulerAngX;
[SerializeField]
float eulerAngY;
[SerializeField]
float eulerAngZ;
bool isStarted = false;
Manager man;
void Start()
{
man = GameObject.Find("Manager").GetComponent<Manager>();
eulerAngX = transform.localEulerAngles.x;
eulerAngY = transform.localEulerAngles.y;
eulerAngZ = transform.localEulerAngles.z;
isStarted = true;
}
public void RotatePedals(float angle)
{
if (!isStarted) return;
this.transform.localRotation = Quaternion.Euler(eulerAngX, eulerAngY , eulerAngZ - angle);
}
// Функция связки с 3D ручками, поворот по горизонтали
public void RotateLeverHorizontal(float angle)
{
if (!isStarted) return;
//Debug.Log("при повороте по горизонтали " + angle );
/*this.transform.localRotation = Quaternion.Euler(transform.localRotation.eulerAngles.x, eulerAngY - angle, transform.localRotation.eulerAngles.z);*/
this.transform.localRotation = Quaternion.Euler(eulerAngX + angle, transform.localRotation.eulerAngles.y, transform.localRotation.eulerAngles.z);
}
// Функция связки с 3D ручками, поворот по вертикали
public void RotateLeverVertical(float angle)
{
if (!isStarted) return;
//Debug.Log("при повороте по вертикали " + angle);
this.transform.localRotation = Quaternion.Euler(transform.localRotation.eulerAngles.x, transform.localRotation.eulerAngles.y, eulerAngZ - angle );
}
// Функция связки с 3D одинарными ручками, поворот по вертикали
public void RotateLeverOneVertical(float angle)// используется только для РОШ 0701, 0702
{
if (!isStarted) return;
//Debug.Log("при повороте по вертикали " + angle);
this.transform.localRotation = Quaternion.Euler(transform.localRotation.eulerAngles.x, eulerAngY - angle, eulerAngZ);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f94c5d14513fdd7429c61884ba714c67
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: