Пример #1
0
    public void CameraYaw(float[] args)
    {
        if (null == args || args.Length != 2)
        {
            return;
        }
        float dir = args[0];
        float lag = args[1] / 1000.0f;

        m_FixedYaw         = LogicSystem.RadianToDegree(dir);
        m_AngularSmoothLag = lag;
        m_SnapSmoothLag    = lag;
    }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        try
        {
            if (null != m_Owner)
            {
                SharedGameObjectInfo shareInfo = LogicSystem.GetSharedGameObjectInfo(m_Owner);
                if (null != shareInfo)
                {
                    m_HideIndicator = !shareInfo.IsIndicatorVisible;
                    m_Dir           = shareInfo.IndicatorDir;
                    SetIndicatorTarget(shareInfo.IndicatorType);
                }
                if (m_HideIndicator || m_HideIndicatorByStory)
                {
                    this.transform.localPosition = UnityEngine.Vector3.zero;
                }
                else
                {
                    this.transform.localPosition = new UnityEngine.Vector3(m_Owner.transform.position.x, m_Owner.transform.position.y, m_Owner.transform.position.z) + new UnityEngine.Vector3(0, 0.3f, 0);
                }
                if (m_IndicatorTypeChanged)
                {
                    if (m_IndicatorTargetType == IndicatorType.NPC)
                    {
                        SetVisible(m_DoorEffect, false);
                        SetVisible(m_MonEffect, true);
                        m_CurEffect = m_MonEffect;
                    }
                    else if (m_IndicatorTargetType == IndicatorType.ROAD_SING)
                    {
                        SetVisible(m_DoorEffect, true);
                        SetVisible(m_MonEffect, false);
                        m_CurEffect = m_DoorEffect;
                    }
                    else
                    {
                        SetVisible(m_DoorEffect, false);
                        SetVisible(m_MonEffect, false);
                    }
                    m_IndicatorTypeChanged = false;
                }
            }
            if (IndicatorType.NPC == m_IndicatorTargetType)
            {
                this.transform.localRotation = UnityEngine.Quaternion.Euler(0, LogicSystem.RadianToDegree(m_Dir), 0);
            }
            else if (IndicatorType.ROAD_SING == m_IndicatorTargetType)
            {
                UnityEngine.GameObject roadSign = GetRoadSign();
                if (null != roadSign)
                {
                    UnityEngine.Vector3 scrPos = this.transform.position;
                    UnityEngine.Vector3 tarPos = roadSign.transform.position;
                    if (UnityEngine.Vector2.Distance(new UnityEngine.Vector2(scrPos.x, scrPos.z), new UnityEngine.Vector2(tarPos.x, tarPos.z)) < m_InvisibleDis)
                    {
                        SetVisible(gameObject, false);
                    }
                    else
                    {
                        SetVisible(m_CurEffect, true);
                        UnityEngine.Vector3 dir = roadSign.transform.position - this.transform.position;
                        dir.y = 0;
                        this.transform.localRotation = UnityEngine.Quaternion.LookRotation(dir, UnityEngine.Vector3.up);
                    }
                }
                else
                {
                    SetVisible(gameObject, false);
                }
                for (int i = 0; i < m_RoadSignObject.Count; i++)
                {
                    UnityEngine.BoxCollider bc = m_RoadSignObject[i].GetComponent <UnityEngine.BoxCollider>();
                    if (null != bc)
                    {
                        if (bc.bounds.Contains(new UnityEngine.Vector3(m_Owner.transform.position.x, m_Owner.transform.position.y, m_Owner.transform.position.z) + new UnityEngine.Vector3(0, 1, 0)))
                        {
                            if (!m_TriggeredSign.Contains(m_RoadSignObject[i].name))
                            {
                                m_TriggeredSign.Add(m_RoadSignObject[i].name);
                            }
                        }
                    }
                }
            }

            /*
             * foreach (UnityEngine.GameObject roadSign in m_RoadSignObject) {
             * UnityEngine.BoxCollider bc = roadSign.GetComponent<UnityEngine.BoxCollider>();
             * if (null != bc) {
             *  if (bc.bounds.Contains(this.transform.position + new UnityEngine.Vector3(0, 1, 0))) {
             *    m_TriggeredSign.Add(roadSign.name);
             *  }
             * }
             * }*/
        }
        catch (System.Exception ex)
        {
            ArkCrossEngine.LogicSystem.LogFromGfx("[Error]:Exception:{0}\n{1}", ex.Message, ex.StackTrace);
        }
    }
Пример #3
0
 public void CameraFixedYaw(float dir)
 {
     m_FixedYaw = LogicSystem.RadianToDegree(dir);
 }
Пример #4
0
 public void CameraFixedYaw(float dir)
 {
     m_FixedYaw         = LogicSystem.RadianToDegree(dir);
     m_AngularSmoothLag = 0.3f;
     m_SnapSmoothLag    = 0.2f;
 }