コード例 #1
0
ファイル: FlightNpcSystem.cs プロジェクト: Peng2017/Framework
        private void UpdateNode(ref NpcFlyingNode npc)
        {
            if (npc.SensorTargets.WatchTargets.Count == 0)
            {
                npc.TryWander();
                return;
            }
            var target = npc.SensorTargets.WatchTargets[0].Target;

            if (!npc.Chasing)
            {
                npc.Chase(target);
            }
            if (npc.Projectile.ShootTimer.IsActive)
            {
                return;
            }
            if (Physics.Raycast(
                    npc.Projectile.ShootPivot.Tr.position, npc.Projectile.ShootPivot.Tr.forward, out var hit, 50,
                    LayerMasks.DefaultCollision))
            {
                if (UnityToEntityBridge.GetEntity(hit.collider) == target)
                {
                    npc.Stop();
                    npc.Projectile.Fire();
                }
            }
        }
コード例 #2
0
ファイル: FlightNpcSystem.cs プロジェクト: Peng2017/Framework
        public FlightNpcSystem()
        {
            NodeFilter <NpcFlyingNode> .Setup(NpcFlyingNode.GetTypes());

            _flyingList = EntityController.GetNodeList <NpcFlyingNode>();
        }