2024-12-20 10:10:19 +08:00
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using Unity.VisualScripting;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.UI;
|
2024-12-24 20:21:15 +08:00
|
|
|
|
using System.Threading.Tasks;
|
2024-12-20 10:10:19 +08:00
|
|
|
|
public class Panel2 : MonoBehaviour
|
|
|
|
|
{
|
2024-12-25 11:01:30 +08:00
|
|
|
|
public static Panel2 instance;
|
2024-12-20 10:10:19 +08:00
|
|
|
|
private Toggle toggle;//<2F><>ɫ<EFBFBD><C9AB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
private Button follow;//<2F><><EFBFBD><EFBFBD><EFBFBD>鰴ť
|
|
|
|
|
private Button end;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť
|
|
|
|
|
private Dropdown dropdown;
|
|
|
|
|
private int optionCount; // <20><><EFBFBD>ڴ洢<DAB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7>Dropdownѡ<6E><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
|
|
|
|
|
|
|
|
|
private List<GameObject> nameImage; // <20>洢<EFBFBD><E6B4A2><EFBFBD>н<EFBFBD>ɫ<EFBFBD><C9AB>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
private GameObject peopleposition;
|
2024-12-24 20:21:15 +08:00
|
|
|
|
|
|
|
|
|
public Camera godView; // <20>ϵ<EFBFBD><CFB5>ӽǵ<D3BD>λ<EFBFBD><CEBB>
|
2024-12-25 11:01:30 +08:00
|
|
|
|
public List<Camera> playerCameras = new List<Camera>(); // <20>洢ÿ<E6B4A2><C3BF><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2024-12-24 20:21:15 +08:00
|
|
|
|
private bool isGodView = true; // <20>Ƿ<EFBFBD>Ϊ<EFBFBD>ϵ<EFBFBD><CFB5>ӽ<EFBFBD>
|
2024-12-25 11:01:30 +08:00
|
|
|
|
public int currentCameraIndex = -1;
|
2024-12-26 03:46:07 +08:00
|
|
|
|
|
|
|
|
|
public List<GameObject> target;//Ŀ<><C4BF>
|
|
|
|
|
|
2024-12-20 10:10:19 +08:00
|
|
|
|
// Start is called before the first frame update
|
|
|
|
|
void Start()
|
|
|
|
|
{
|
2024-12-25 11:01:30 +08:00
|
|
|
|
instance = this;
|
2024-12-24 20:21:15 +08:00
|
|
|
|
godView=GameObject.Find("TopCamera").GetComponent<Camera>();
|
|
|
|
|
toggle =transform.Find("right/under/Toggle").GetComponent<Toggle>();
|
2024-12-20 10:10:19 +08:00
|
|
|
|
toggle.onValueChanged.AddListener(OnToggleValueChanged);
|
|
|
|
|
toggle.isOn = true;
|
|
|
|
|
dropdown =transform.Find("left/Dropdown").GetComponent<Dropdown>();
|
|
|
|
|
follow=transform.Find("left/Follow").GetComponent<Button>();
|
|
|
|
|
follow.onClick.AddListener(FollowBtn);
|
|
|
|
|
end = transform.Find("left/btn_enddrill").GetComponent<Button>();
|
|
|
|
|
end.onClick.AddListener(EndBtn);
|
2024-12-25 11:01:30 +08:00
|
|
|
|
|
2024-12-23 14:46:56 +08:00
|
|
|
|
peopleposition = GameObject.Find("peopleposition").gameObject;
|
2024-12-20 10:10:19 +08:00
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD> Button <20><><EFBFBD><EFBFBD>
|
|
|
|
|
nameImage = new List<GameObject>();
|
|
|
|
|
foreach (Transform child in peopleposition.transform)
|
|
|
|
|
{
|
2024-12-26 03:46:07 +08:00
|
|
|
|
|
2024-12-20 10:10:19 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>"bg"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
Transform bgTransform = child.Find("nameImage");
|
|
|
|
|
if (bgTransform != null)
|
|
|
|
|
{
|
|
|
|
|
nameImage.Add(bgTransform.gameObject);
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-12-26 03:46:07 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>б<EFBFBD>ǩΪ "Player" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
GameObject[] players = GameObject.FindGameObjectsWithTag("Player");
|
2024-12-25 11:01:30 +08:00
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF> Player<65><72><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
foreach (GameObject player in players)
|
2024-12-26 03:46:07 +08:00
|
|
|
|
{
|
|
|
|
|
target.Add(player.gameObject);
|
2024-12-25 11:01:30 +08:00
|
|
|
|
}
|
2024-12-26 03:46:07 +08:00
|
|
|
|
SetOptionCount(target.Count);
|
2024-12-25 11:01:30 +08:00
|
|
|
|
// Ĭ<><C4AC>ִ<EFBFBD><D6B4>һ<EFBFBD><D2BB><EFBFBD>л<EFBFBD>
|
|
|
|
|
OnToggleValueChanged(toggle.isOn);
|
2024-12-20 10:10:19 +08:00
|
|
|
|
|
|
|
|
|
}
|
2024-12-25 11:01:30 +08:00
|
|
|
|
// <20>л<EFBFBD><D0BB><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
public void SwitchToCamera(int index)
|
|
|
|
|
{
|
2024-12-26 03:46:07 +08:00
|
|
|
|
|
2024-12-25 11:01:30 +08:00
|
|
|
|
isGodView = false;
|
2024-12-26 03:46:07 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ target[index] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
godView.transform.SetParent(target[index].transform);
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ת
|
|
|
|
|
godView.transform.localPosition = (Vector3.zero+new Vector3(0, 1.5f, -1));
|
|
|
|
|
godView.transform.localRotation = Quaternion.identity;
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
godView.transform.LookAt(target[index].transform.position+ new Vector3(0, 1.5f,0));
|
2024-12-25 11:01:30 +08:00
|
|
|
|
|
|
|
|
|
}
|
2024-12-20 10:10:19 +08:00
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dropdownѡ<6E><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
|
|
|
|
|
public void SetOptionCount(int count)
|
|
|
|
|
{
|
|
|
|
|
optionCount = count;
|
|
|
|
|
dropdown.ClearOptions();
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
var options = new System.Collections.Generic.List<string>();
|
|
|
|
|
for (int i = 0; i < optionCount; i++)
|
|
|
|
|
{
|
|
|
|
|
options.Add("<22><>ɫ " + (i + 1)); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><>ɫ 1"<22><>"<22><>ɫ 2"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3>ɰ<EFBFBD><C9B0><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
dropdown.AddOptions(options);
|
|
|
|
|
}
|
|
|
|
|
// Update is called once per frame
|
|
|
|
|
void Update()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// Toggle״̬<D7B4>仯ʱ<E4BBAF><CAB1><EFBFBD>õķ<C3B5><C4B7><EFBFBD>
|
|
|
|
|
void OnToggleValueChanged(bool isOn)
|
|
|
|
|
{
|
|
|
|
|
// <20><><EFBFBD><EFBFBD>Toggle<6C><65>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"nameImage"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
foreach (var bgObject in nameImage)
|
|
|
|
|
{
|
|
|
|
|
bgObject.SetActive(isOn); // <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void FollowBtn()
|
|
|
|
|
{
|
|
|
|
|
//<2F>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ,<2C><>ʾ<EFBFBD><CABE>ɫ<EFBFBD>ӽ<EFBFBD>
|
|
|
|
|
//peopleposition.SetActive(false);
|
|
|
|
|
int selectedIndex = dropdown.value;
|
|
|
|
|
Debug.Log("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ" + (selectedIndex+1) + "<22>ӽ<EFBFBD>");
|
2024-12-26 03:46:07 +08:00
|
|
|
|
|
|
|
|
|
//godView.GetComponent<Camera>().orthographic = false;
|
2024-12-25 11:01:30 +08:00
|
|
|
|
SwitchToCamera(selectedIndex);//ת<><D7AA><EFBFBD>ӽ<EFBFBD>
|
2024-12-20 10:10:19 +08:00
|
|
|
|
Game.uiManager.CloseUI("Panel1_2");
|
|
|
|
|
Game.uiManager.ShowUI<Image>("Panel1_3");
|
|
|
|
|
}
|
2024-12-24 20:21:15 +08:00
|
|
|
|
|
2024-12-20 10:10:19 +08:00
|
|
|
|
void EndBtn()
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰ
|
|
|
|
|
Game.uiManager.ShowUI<Image>("PoPhost");
|
2024-12-23 14:46:56 +08:00
|
|
|
|
}
|
2024-12-20 10:10:19 +08:00
|
|
|
|
}
|