Exemplo n.º 1
0
 private void EnableAI()
 {
     if (m_lstTargetObjects == null || m_lstTargetObjects.Count <= 0)
     {
         return;
     }
     foreach (GameObject charObject in m_lstTargetObjects)
     {
         CharTransformContainer container = charObject.GetComponent <CharTransformContainer>();
         if (container == null)
         {
             Debuger.LogError("No Container in " + charObject.ToString());
             return;
         }
         Npc npc = null;
         if (container.GetData() is Npc)
         {
             npc = (Npc)container.GetData();
         }
         if (null != npc)
         {
             npc.SetAIStatus(true);
             npc.IsPlayerControlled = false;
             npc.ResetGroup();
         }
     }
 }
Exemplo n.º 2
0
 private void DisableAI()
 {
     if (m_mapTargetObjects == null || m_mapTargetObjects.Count <= 0)
     {
         return;
     }
     foreach (GameObject charObject in m_mapTargetObjects.Values)
     {
         CharTransformContainer container = charObject.GetComponent <CharTransformContainer>();
         if (container == null)
         {
             Debuger.LogError("No Container in " + charObject.ToString());
             return;
         }
         Npc npc = null;
         if (container.GetData() is Npc)
         {
             npc = (Npc)container.GetData();
         }
         if (null != npc)
         {
             npc.SetAIStatus(false);
         }
     }
 }
Exemplo n.º 3
0
 private void MoveNpc()
 {
     if (m_lstTargetObjects == null || m_lstTargetObjects.Count <= 0)
     {
         Debuger.LogWarning("No Exist Npc !");
         return;
     }
     foreach (GameObject charObject in m_lstTargetObjects)
     {
         CharTransformContainer container = charObject.GetComponent <CharTransformContainer>();
         if (container == null)
         {
             Debuger.LogError("No Container in " + charObject.ToString());
             return;
         }
         m_Npc = (Npc)container.GetData();
         List <CharMovement> movePath = new List <CharMovement>();
         foreach (var point in m_Config.LstSpeedMove)
         {
             //Vector3 point = target.Target.GetVector3();
             //movePath.Add(point);
             CharMovement move = new CharMovement();
             move.Target = point.Target.GetVector3();
             move.Speed  = (float)point.Speed;
             movePath.Add(move);
         }
         Rigidbody body = charObject.GetComponent <Rigidbody>();
         if (body)
         {
             m_bIsKinematic   = body.isKinematic;
             body.isKinematic = true;
         }
         m_Npc.MovePath(movePath);
     }
 }
Exemplo n.º 4
0
 private void StopMove()
 {
     // stop npcs
     if (m_lstTargetObjects == null || m_lstTargetObjects.Count <= 0)
     {
         return;
     }
     foreach (GameObject obj in m_lstTargetObjects)
     {
         CharTransformContainer container = obj.GetComponent <CharTransformContainer>();
         if (container != null)
         {
             if (container.GetData() is Npc)
             {
                 Npc npc = (Npc)container.GetData();
                 npc.StopMove();
             }
         }
     }
 }
Exemplo n.º 5
0
 private void MoveNpc()
 {
     if (m_lstTargetObjects == null || m_lstTargetObjects.Count <= 0)
     {
         Debuger.LogWarning("No Exist Npc !");
         return;
     }
     foreach (GameObject charObject in m_lstTargetObjects)
     {
         CharTransformContainer container = charObject.GetComponent <CharTransformContainer>();
         if (container == null)
         {
             Debuger.LogError("No Container in " + charObject.ToString());
             return;
         }
         m_Npc = (Npc)container.GetData();
         m_Npc.Rotate((float)m_Config.Rotation);
     }
 }
Exemplo n.º 6
0
    private void OnSelectNpc(Gesture gesture)
    {
        if (!(gesture is LongPressGesture))
        {
            return;
        }

        if (!m_bIsDictate)
        {
            return;
        }

        LongPressGesture longGest = (LongPressGesture)gesture;

        // Set npc selected
        GameObject selection = gesture.Selection;

        if (null == selection)
        {
            return;
        }
        CharTransformContainer container = selection.GetComponent <CharTransformContainer>();

        if (container == null)
        {
            //Debug.LogWarning("container not found");
            return;
        }
        var data = container.GetData();

        if (data is Npc)
        {
            Npc npc = (Npc)data;
            if (npc.IsInGroup)
            {
                CharTransformData charData = (CharTransformData)(npc.GetTransformData());
                charData.SetSelectedStatus(true);
            }
        }
    }
Exemplo n.º 7
0
    private void OnCharMove(Gesture gesture)
    {
        // check gesture
        if (!(gesture is DragGesture))
        {
            return;
        }
        DragGesture dragGest = (DragGesture)gesture;

        // Start
        if (dragGest.Phase == ContinuousGesturePhase.Started)
        {
            m_CurrentSelection = gesture.Selection;
            if (null == gesture.Selection)
            {
                return;
            }
            Transform transform = null;
            if (GetMouseHitPlayer(out transform))
            {
                gesture.Selection  = transform.gameObject;
                m_CurrentSelection = gesture.Selection;
            }
            // get char
            CharTransformContainer container = m_CurrentSelection.GetComponent <CharTransformContainer>();
            if (container == null)
            {
                //Debug.LogWarning("container not found");
                return;
            }
            var data = container.GetData();
            // player
            if (data is PlayerCharacter)
            {
                m_Player = (PlayerCharacter)data;
                CharTransformData charData = (CharTransformData)(m_Player.GetTransformData());

                m_DraggingFinger = gesture.Fingers[0];
                CreateLineRender();
            }
            // npc
            else if (data is Npc)
            {
                Npc npc = (Npc)data;
                CharTransformData charData = (CharTransformData)(npc.GetTransformData());
                // check npc selected
                if (charData.GetSelectedStatus())
                {
                    m_DraggingFinger = gesture.Fingers[0];
                    CreateLineRender();
                }
            }
        }
        // Update
        else if (dragGest.Phase == ContinuousGesturePhase.Updated)
        {
            // make sure this is the finger we started dragging with
            if (gesture.Fingers[0] != m_DraggingFinger)
            {
                return;
            }
            if (!m_CurrentSelection)
            {
                return;
            }
            if (m_LineRenderInstances.ContainsKey(m_CurrentSelection))
            {
                GameObject   lineRenderer = m_LineRenderInstances[m_CurrentSelection];
                LineRenderer renderer     = lineRenderer.GetComponent <LineRenderer>();
                if (renderer)
                {
                    renderer.SetPosition(0, m_CurrentSelection.transform.position);
                    Vector3 hitpoint = new Vector3();
                    if (GetMouseHitTerrainPos(out hitpoint))
                    {
                        renderer.SetPosition(1, hitpoint);
                        if (GestureManager.CheckNavmeshPoint(hitpoint))
                        {
                            renderer.SetColors(new Color(0, 1, 0), new Color(0, 1, 0));
                        }
                        else
                        {
                            renderer.SetColors(new Color(1, 0, 0), new Color(1, 0, 0));
                        }
                    }
                }
            }
        }
        // End
        else if (dragGest.Phase == ContinuousGesturePhase.Ended)
        {
            if (!m_CurrentSelection)
            {
                return;
            }

            ClearLineRender();

            // get char
            CharTransformContainer container = m_CurrentSelection.GetComponent <CharTransformContainer>();
            if (container == null)
            {
                //Debug.LogWarning("container not found");
                return;
            }
            var data = container.GetData();
            // player
            if (data is PlayerCharacter)
            {
                m_Player = (PlayerCharacter)data;
                MovePlayer();
            }
            // npc
            else if (data is Npc)
            {
                Npc npc = (Npc)data;
                CharTransformData charData = (CharTransformData)(npc.GetTransformData());
                if (charData.GetSelectedStatus())
                {
                    MoveNpc(npc);
                }
            }
        }
    }