You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
170 lines
5.2 KiB
170 lines
5.2 KiB
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class CheckKuang : MonoBehaviour
|
|
{
|
|
private Text carTypeTxt;
|
|
private Text carSpeedTxt;
|
|
public Car _car;
|
|
private float _speed;
|
|
private bool openCheck = false;
|
|
|
|
private Ray _ray;
|
|
public Camera _camera;
|
|
private Vector2 scale;
|
|
|
|
public float disValue;
|
|
|
|
public void Init(int carType, float speed)
|
|
{
|
|
scale = GameManagerForZhuanWan.Instance.kuangScale;
|
|
|
|
this.GetComponent<RectTransform>().sizeDelta = new Vector2(Const.Kuang_Wight * scale.x, Const.Kuang_Height * scale.y);
|
|
|
|
carTypeTxt = transform.Find("CarTypeTxt").GetComponent<Text>();
|
|
carSpeedTxt = transform.Find("CarSpeedTxt").GetComponent<Text>();
|
|
switch (carType)
|
|
{
|
|
case 1:
|
|
carTypeTxt.text = "轿车";
|
|
break;
|
|
case 2:
|
|
carTypeTxt.text = "SUV";
|
|
break;
|
|
case 3:
|
|
carTypeTxt.text = "货车";
|
|
break;
|
|
}
|
|
_speed = speed;
|
|
carSpeedTxt.text = _speed.ToString();
|
|
openCheck = true;
|
|
_ray = new Ray();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (openCheck)
|
|
{
|
|
if (_car.gameObject.activeSelf == false)
|
|
{
|
|
this.GetComponent<Image>().enabled = false;
|
|
for (int i = 0; i < transform.childCount; i++)
|
|
{
|
|
transform.GetChild(i).gameObject.SetActive(false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.GetComponent<Image>().enabled = true;
|
|
for (int i = 0; i < transform.childCount; i++)
|
|
{
|
|
transform.GetChild(i).gameObject.SetActive(true);
|
|
}
|
|
}
|
|
//int random = Random.Range(0, 1);
|
|
//if (random == 0)
|
|
//{
|
|
// _speed +=0.1f;
|
|
|
|
//}
|
|
//else
|
|
//{
|
|
// _speed -= 0.1f;
|
|
//}
|
|
|
|
carSpeedTxt.text = _car.overSpeed.ToString();
|
|
if (GameManagerForZhuanWan.Instance.OpenKuangAutoScale)
|
|
{
|
|
AutoScale();
|
|
}
|
|
else
|
|
{
|
|
this.GetComponent<RectTransform>().sizeDelta = new Vector2(Const.Kuang_Wight * scale.x, Const.Kuang_Height * scale.y);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private void AutoScale()
|
|
{
|
|
RaycastHit hit;
|
|
|
|
|
|
float distance = Vector3.Distance(_car.transform.position, _camera.transform.position);
|
|
float maxDistance = Const.Pass1CameraFarClip;
|
|
distance = Mathf.Clamp(distance, 15, maxDistance);
|
|
float rate = Mathf.SmoothStep(0.25f, 1f, 1 - (distance / maxDistance));
|
|
disValue = rate;
|
|
float h;
|
|
float w;
|
|
|
|
h = rate * 75;
|
|
w = rate * 80;
|
|
|
|
|
|
this.GetComponent<RectTransform>().sizeDelta = new Vector2(w, h);
|
|
|
|
|
|
if (rate >= 0.9f)
|
|
{
|
|
|
|
//if (distance <= 15)
|
|
//{
|
|
// this.GetComponent<Image>().enabled = false;
|
|
// carSpeedTxt.enabled = false;
|
|
// carTypeTxt.enabled = false;
|
|
|
|
//}
|
|
//else
|
|
//{
|
|
// this.GetComponent<RectTransform>().sizeDelta = new Vector2(w *distance* GameManagerForZhuanWan.Instance.kuangDistanceValue, h * distance * GameManagerForZhuanWan.Instance.kuangDistanceValue);
|
|
//}
|
|
if (distance <= 35&&distance>15)
|
|
this.GetComponent<RectTransform>().sizeDelta = new Vector2(w + rate * GameManagerForZhuanWan.Instance.kuangDistanceValue, h + (rate+0.2f) * GameManagerForZhuanWan.Instance.kuangDistanceValue);
|
|
else if (distance <= 15)
|
|
{
|
|
this.GetComponent<Image>().enabled = false;
|
|
carSpeedTxt.enabled = false;
|
|
carTypeTxt.enabled = false;
|
|
}
|
|
else
|
|
{
|
|
if (GameManagerForZhuanWan.Instance.openZheDang)
|
|
{
|
|
_ray.direction = (_car.transform.position + new Vector3(0, 2, 0) - _camera.transform.position).normalized;
|
|
_ray.origin = _camera.transform.position;
|
|
if (Physics.Raycast(_ray, out hit, (_car.transform.position + new Vector3(0, 2, 0) - _camera.transform.position).magnitude)) ;
|
|
{
|
|
//Debug.DrawLine(_camera.transform.position + new Vector3(0, 2, 0), _car.transform.position);
|
|
if (hit.collider != null)
|
|
{
|
|
if (hit.collider.tag == "ZhangAi")
|
|
{
|
|
this.GetComponent<Image>().enabled = false;
|
|
carSpeedTxt.enabled = false;
|
|
carTypeTxt.enabled = false;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
this.GetComponent<Image>().enabled = true;
|
|
carSpeedTxt.enabled = true;
|
|
carTypeTxt.enabled = true;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|