Пример #1
0
 void Update()
 {
     if (!npc_Movement.Waiting)
     {
         lightAngle = Vector2.Angle(npc_Movement.points[npc_Movement.currentPoint].transform.position - transform.position, Vector2.right);
         lightAngle = lightAngle * Mathf.Sign(npc_Movement.points[npc_Movement.currentPoint].transform.position.y - transform.position.y);
     }
     else
     {
         wp_s = npc_Movement.points[npc_Movement.currentPoint].GetComponent <Waypoints_System>();
         StartCoroutine(LookAround());
     }
     CreateVectors();
 }
Пример #2
0
    void Update()
    {
        // Если enemy дошёл до последнего поинта то переворачиваем массив и он(enemy) идёт обратно
        if (currentPoint == points.objects.Length)
        {
            for (int i = 0; i < points.objects.Length; i++)
            {
                points[i] = TempBack[i];
            }

            currentPoint = 0;
        }// Аналогично но только вперед
        else if (currentPoint == 0)
        {
            for (int i = 0; i < points.objects.Length; i++)
            {
                points[i] = TempFoward[i];
            }
        }

        float currentDistance = Vector3.Distance(transform.position, points[currentPoint].position);

        if (currentDistance <= Distance)
        {
            if (points[currentPoint].tag == "Wait")
            {
                if (!Waiting)
                {
                    wp_s = points[currentPoint].GetComponent <Waypoints_System>();
                    // Остановится на заданное кол-во секунд
                    StartCoroutine(stop());
                    Waiting = true;
                }
            }
            else
            {
                currentPoint++;
            }
        }

        Vector3 directionToPoint = points[currentPoint].position - transform.position;

        transform.position = Vector3.MoveTowards(transform.position, points[currentPoint].position, Speed * Time.deltaTime);
    }
Пример #3
0
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        ws = (Waypoints_System)target;
        EditorGUILayout.LabelField("________________________________________________________________________________");
        _turnLeft.boolValue = EditorGUILayout.Toggle("isTurnLeft", _turnLeft.boolValue);
        if (_turnLeft.boolValue && !lastLeft)
        {
            _turnRight.boolValue = false;
            _turnDown.boolValue  = false;
            _turnUp.boolValue    = false;
        }
        _turnRight.boolValue = EditorGUILayout.Toggle("isTurnRight", _turnRight.boolValue);
        if (_turnRight.boolValue && !lastRight)
        {
            _turnLeft.boolValue = false;
            _turnDown.boolValue = false;
            _turnUp.boolValue   = false;
        }
        _turnDown.boolValue = EditorGUILayout.Toggle("isTurnDown", _turnDown.boolValue);
        if (_turnDown.boolValue && !lastDown)
        {
            _turnLeft.boolValue  = false;
            _turnRight.boolValue = false;
            _turnUp.boolValue    = false;
        }
        _turnUp.boolValue = EditorGUILayout.Toggle("isTurnUp", _turnUp.boolValue);
        if (_turnUp.boolValue && !lastUp)
        {
            _turnLeft.boolValue  = false;
            _turnRight.boolValue = false;
            _turnDown.boolValue  = false;
        }
        EditorGUILayout.LabelField("________________________________________________________________________________");
        ws.lookLeft  = EditorGUILayout.IntField("lookLeft", ws.lookLeft);
        ws.lookRight = EditorGUILayout.IntField("lookRight", ws.lookRight);
        ws.lookDown  = EditorGUILayout.IntField("lookDown", ws.lookDown);
        ws.lookUp    = EditorGUILayout.IntField("lookLeft", ws.lookUp);

        serializedObject.ApplyModifiedProperties();
    }