UDK: Kiểm tra loại diễn viên trong ProcessTouch


10

Vì vậy, nói ngắn gọn, tôi đang cố dịch chuyển một con tốt khi nó bị trúng đạn (hoặc bị hư hại bởi bất kỳ vũ khí nào trong trò chơi của tôi.)

Ngay bây giờ, tôi đang cố gắng gọi Pawn.SetLocation trong ProcessTouch của dự án. Đó là một vấn đề bởi vì ProcessTouch sẽ đánh bất kỳ diễn viên nào, không chỉ là một con tốt. Ngoài ra, mọi nỗ lực để kiểm tra lỗi "Actor Other" của ProcessTouch đều gây ra lỗi.

Tôi đã thử một loạt các giải pháp (bao gồm tạo một sự kiện TakeDamage trong lớp Trình điều khiển cầm đồ) nhưng không có kết quả.

    simulated function ProcessTouch(Actor Other, Vector HitLocation, Vector HitNormal)
    {
         if (Other != Instigator)
         {
              //This is where the Other.TakeDamage goes if we are using a traditional gun.
              if (Other == Pawn);
              {
                   Other.SetLocation(0,0,0);
              }
         }
    Destroy;
    }

Mã này phàn nàn rằng Pawn là một biểu hiện xấu. Làm thế nào khác tôi nên kiểm tra loại diễn viên ở đây?

Câu trả lời:


0

Tôi nghĩ rằng bạn bỏ lỡ để cầm đồ của bạn như:

if( myDesiredClass(Other) != none)

Kiểm tra nó và cho tôi thông tin phản hồi nếu bạn gặp phải bất kỳ vấn đề mới.


0

Theo tôi bạn có thể làm điều đó bằng cách kiểm tra lớp

Other.group == class'Pawn '

hoặc bằng cách đúc và kiểm tra xem nó có hay không

Cầm đồ (Khác)! = Không

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.