stoneharry

Untitled

Nov 18th, 2018
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.81 KB | None | 0 0
  1. // ScientistDomain.cs contains:
  2.  
  3.         [Header("Sensors")]
  4.         [ReadOnly]
  5.         [SerializeField]
  6.         private List<INpcSensor> _sensors = new List<INpcSensor>()
  7.         {
  8.             new PlayersInRangeSensor()
  9.             {
  10.                 TickFrequency = 0.5f
  11.             },
  12.             new PlayersOutsideRangeSensor()
  13.             {
  14.                 TickFrequency = 0.1f
  15.             },
  16.             new PlayersDistanceSensor()
  17.             {
  18.                 TickFrequency = 0.1f
  19.             },
  20.             new PlayersViewAngleSensor()
  21.             {
  22.                 TickFrequency = 0.1f
  23.             },
  24.             new EnemyPlayersInRangeSensor()
  25.             {
  26.                 TickFrequency = 0.1f
  27.             },
  28.             new EnemyPlayersLineOfSightSensor()
  29.             {
  30.                 TickFrequency = 0.25f
  31.             },
  32.             new EnemyPlayersHearingSensor()
  33.             {
  34.                 TickFrequency = 0.1f
  35.             },
  36.             new CoverPointsInRangeSensor()
  37.             {
  38.                 TickFrequency = 1f
  39.             },
  40.             new AnimalsInRangeSensor()
  41.             {
  42.                 TickFrequency = 1f
  43.             },
  44.             new AnimalDistanceSensor()
  45.             {
  46.                 TickFrequency = 0.25f
  47.             }
  48.         };
  49.  
  50. // So in my code I can do:
  51.  
  52.                     BaseEntity baseEntity = GameManager.server.CreateEntity(prefabPath, position, rotation, false);
  53.                     ScientistDomain component = baseEntity.GetComponent<ScientistDomain>();
  54.                     component.Sensors.Find(s => s is PlayersInRangeSensor).TickFrequency = 60;
  55.  
  56. // This means that the NPC will only check for players being in range to aggro onto them every 60 seconds. Of course, shooting a gun nearby or some similar action will still cause the NPC to aggro.
Advertisement
Add Comment
Please, Sign In to add comment