Exemplo n.º 1
0
    public override MsgPlayerWeaponCrosshair GetRelativeHeightOfReticle()
    {
        MsgPlayerWeaponCrosshair crosshair = new MsgPlayerWeaponCrosshair();
        Camera cam    = CameraManager.GetInstance()?.GetMainCamereComponent()?.GetCamera();
        float  horFOV = cam.fieldOfView * cam.aspect;
        float  verFOV = cam.fieldOfView;

        if (cam != null)
        {
            //crosshair.HorizontalRelativeHeight = m_MainAreaCoverAngle / horFOV;
            //crosshair.VerticalRelativeHeight = m_MainAreaCoverAngle / verFOV;

            //crosshair.SubAimAreaRelativeHeight.Clear();
            //crosshair.SubAimAreaScreenPosition.Clear();

            //for (int iArea = 0; iArea < m_SubAimAreas.Count; iArea++)
            //{
            //	m_SubAimAreas[iArea].UpdateBaseRay(cam.transform.forward);
            //	crosshair.SubAimAreaRelativeHeight.Add(new Vector2(m_SubAimAreas[iArea].CoverAngle / horFOV, m_SubAimAreas[iArea].CoverAngle / verFOV));
            //	crosshair.SubAimAreaScreenPosition.Add(cam.WorldToScreenPoint(cam.transform.position + m_SubAimAreas[iArea].GetBaseRay()));
            //}

            //crosshair.RemainingRestoreDuration = Mathf.Clamp(m_LastFireTime + m_RestoreDuration - Time.time, 0, float.MaxValue);
            return(crosshair);
        }
        else
        {
            return(base.GetRelativeHeightOfReticle());
        }
    }
Exemplo n.º 2
0
    //protected override void MessageToTheChangeOfCrosShairSize(float delta)
    //{
    //    //空继承,防止 父类 update ,给覆盖
    //    //改为鼠标按下时,通知hud ,此时各个区域情况,由Hud 自己循环区域动画
    //}

    protected override MsgPlayerWeaponCrosshair GetRelativeHeightOfReticle()
    {
        MsgPlayerWeaponCrosshair crosshair = new MsgPlayerWeaponCrosshair();
        Camera cam = CameraManager.GetInstance()?.GetMainCamereComponent()?.GetCamera();

        if (cam != null)
        {
            float horFOV = cam.fieldOfView * cam.aspect;
            float verFOV = cam.fieldOfView;

            for (int i = 0; i < m_AimAreaList.Count; i++)
            {
                AimArea aimArea = m_AimAreaList[i];
                if (!aimArea.IsSon)
                {
                    //主区域
                    crosshair.HorizontalRelativeHeight = aimArea.GetCoverAngle() / horFOV;
                    crosshair.VerticalRelativeHeight   = aimArea.GetCoverAngle() / verFOV;
                }
            }
            return(crosshair);
        }
        else
        {
            return(base.GetRelativeHeightOfReticle());
        }
    }
Exemplo n.º 3
0
    /// <summary>
    /// 更新准星偏移
    /// </summary>
    /// <param name="crosshair">MsgPlayerWeaponCrosshairScale</param>
	private void UpdateCrosshairOffset(MsgPlayerWeaponCrosshair crosshair)
	{
        //主准星的放大缩小
        if (m_FrameBox != null && (crosshair.HorizontalRelativeHeight >= 0 || crosshair.VerticalRelativeHeight >= 0))
        {
            //float x = Screen.width / 2 + crosshair.HorizontalRelativeHeight * Screen.width / 2;
            //float y = Screen.height / 2 + crosshair.VerticalRelativeHeight * Screen.height / 2;

            /*
            Vector2 screen = UIManager.Instance.ScreenSize;
            float x = Screen.width / 2 + crosshair.HorizontalRelativeHeight * screen.x / 2;
            float y = Screen.height / 2 + crosshair.VerticalRelativeHeight * screen.y / 2;

            Vector2 point;
            if (RectTransformUtility.ScreenPointToLocalPointInRectangle(m_FrameBox.parent.GetComponent<RectTransform>(), new Vector2(x, y), m_Camera, out point))
            {
                m_FrameBox.sizeDelta = point * 2;
            }
            */

            Vector2 screen = UIManager.Instance.ScreenSize;
            float x = Screen.width / 2 + crosshair.HorizontalRelativeHeight * screen.x / 2;
            float y = Screen.height / 2 + crosshair.VerticalRelativeHeight * screen.y / 2;

            Vector2 point;
            if (RectTransformUtility.ScreenPointToLocalPointInRectangle(m_Root.parent.GetComponent<RectTransform>(), new Vector2(x, y), m_Camera, out point))
            {
                m_FrameBox.sizeDelta = point * 2;
            }
            m_Crosshair.gameObject.SetActive(true);

            MaxMissileCount = crosshair.MissileCountInOneShot;
            MissileLockTime = crosshair.MissileLockTime;
        }
	}
Exemplo n.º 4
0
    /// <summary>
    /// 通知Hud准星大小变化情况
    /// </summary>
    /// <param name="delta"></param>
    protected virtual void MessageToTheChangeOfCrosShairSize(float delta)
    {
        Camera cam = CameraManager.GetInstance()?.GetMainCamereComponent()?.GetCamera();

        if (cam != null)
        {
            MsgPlayerWeaponCrosshair crosshairOffset = GetRelativeHeightOfReticle();
            GameFacade.Instance.SendNotification(NotificationName.PlayerWeaponCrosshairScale, crosshairOffset);
        }
    }
Exemplo n.º 5
0
    /// <summary>
    /// 把准星信息通知HUD
    /// </summary>
    public virtual void NotifyHUDCrosshair()
    {
        Camera cam = CameraManager.GetInstance()?.GetMainCamereComponent()?.GetCamera();

        if (cam != null)
        {
            MsgPlayerWeaponCrosshair crosshairOffset = GetRelativeHeightOfReticle();
            GameFacade.Instance.SendNotification(NotificationName.PlayerWeaponCrosshairScale, crosshairOffset);
        }
    }
Exemplo n.º 6
0
    public override void OnToggledToMainWeapon()
    {
        Camera cam = CameraManager.GetInstance()?.GetMainCamereComponent()?.GetCamera();

        if (cam != null)
        {
            MsgPlayerWeaponCrosshair crosshairOffset = new MsgPlayerWeaponCrosshair();
            crosshairOffset.HorizontalRelativeHeight = m_ReticleFOVParam / (cam.fieldOfView * cam.aspect);
            crosshairOffset.VerticalRelativeHeight   = m_ReticleFOVParam / cam.fieldOfView;
            GameFacade.Instance.SendNotification(NotificationName.PlayerWeaponCrosshairScale, crosshairOffset);
        }
    }
Exemplo n.º 7
0
    public override MsgPlayerWeaponCrosshair GetRelativeHeightOfReticle()
    {
        MsgPlayerWeaponCrosshair crosshair = new MsgPlayerWeaponCrosshair();
        Camera cam = CameraManager.GetInstance()?.GetMainCamereComponent()?.GetCamera();

        if (cam != null)
        {
            crosshair.HorizontalRelativeHeight = m_ReticleFOVParam / (cam.fieldOfView * cam.aspect);
            crosshair.VerticalRelativeHeight   = m_ReticleFOVParam / cam.fieldOfView;
            return(crosshair);
        }
        else
        {
            return(base.GetRelativeHeightOfReticle());
        }
    }
Exemplo n.º 8
0
    /// <summary>
    /// 得到当前准星,水平/垂直相扩散对比例信息
    /// </summary>
    protected override MsgPlayerWeaponCrosshair GetRelativeHeightOfReticle()
    {
        MsgPlayerWeaponCrosshair crosshair = new MsgPlayerWeaponCrosshair();
        Camera cam = CameraManager.GetInstance()?.GetMainCamereComponent()?.GetCamera();

        if (cam != null)
        {
            crosshair.HorizontalRelativeHeight = m_ReticleHorizontalFOVParam / (cam.fieldOfView * cam.aspect);
            crosshair.VerticalRelativeHeight   = m_ReticleHorizontalFOVParam / m_ReticleAspect / cam.fieldOfView;
            crosshair.MissileCountInOneShot    = m_MaxMissileCountInOneShotParam;
            crosshair.MissileLockTime          = m_LockonTimeParam;
            return(crosshair);
        }
        else
        {
            return(base.GetRelativeHeightOfReticle());
        }
    }
Exemplo n.º 9
0
    /// <summary>
    /// 得到当前准星,水平/垂直相扩散对比例信息
    /// </summary>
    protected override MsgPlayerWeaponCrosshair GetRelativeHeightOfReticle()
    {
        m_CrossSightLoic.ChangeVirtualCameraAttribute(m_CurrentHorizontalAngle, m_Aspect);

        MsgPlayerWeaponCrosshair crosshair = new MsgPlayerWeaponCrosshair();
        Camera cam = CameraManager.GetInstance()?.GetMainCamereComponent()?.GetCamera();

        if (cam != null)
        {
            crosshair.HorizontalRelativeHeight = m_CurrentHorizontalAngle * 2 / (cam.fieldOfView * cam.aspect);
            crosshair.VerticalRelativeHeight   = m_CurrentHorizontalAngle / m_Aspect * 2 / cam.fieldOfView;

            return(crosshair);
        }
        else
        {
            return(base.GetRelativeHeightOfReticle());
        }
    }
Exemplo n.º 10
0
    /// <summary>
    /// 得到当前准星,水平/垂直相扩散对比例信息
    /// </summary>
    protected virtual MsgPlayerWeaponCrosshair GetRelativeHeightOfReticle()
    {
        MsgPlayerWeaponCrosshair crosshair = new MsgPlayerWeaponCrosshair();

        return(crosshair);
    }
Exemplo n.º 11
0
    /// <summary>
    /// 武器准星偏移
    /// </summary>
    /// <param name="msg">MsgPlayerWeaponCrosshairScale</param>
    private void OnWeaponCrosshairOffset(MsgPlayerWeaponCrosshair crosshair)
    {
		UpdateCrosshairOffset(crosshair);
	}