udk½Ì³Ì

*

* ±ØÐëÓÃexec functionµÄÉùÃ÷·½Ê½

* ·½·¨Ãû¿ÉÒÔÈÎÒâÈ¡£¬ÄãȡɶÃû£¬ÔÚ¿ØÖÆÌ¨¾ÍÊäɶÃüÁî *

******************************************************************/

5.2.Ìí¼ÓÒ»¸ö·½·¨À´ÏÔʾÊó±ê

1. function DrawTraceDebugRays() 2. {

3. local KWPlayerController IsoPlayerController;

4. IsoPlayerController = KWPlayerController(PlayerOwner); 5.

6. //»æ»­Ñ¡Ôñ·¶Î§¡£

7. //MakeColorµÄ²ÎÊýΪR,G,BÒÔ¼°Í¸Ã÷ͨµÀ¡£ 8. Draw3DLine(IsoPlayerController.StartTrace,

IsoPlayerController.EndTrace, MakeColor(255,128,128,255)); 9. //»æ»­Òƶ¯Â·Ïß

10. Draw3DLine(IsoPlayerController.PawnEyeLocation, IsoPlayerController.MouseHitWorldLocation, MakeColor(0,200,255,255)); 11.}

¸´ÖÆ´úÂë

/******************************************************************* * DrawTraceDebugRays()·½·¨½éÉÜ *

* äÖȾÏÔʾÊó±ê¸ú×Ùµ÷ÊÔÏß¡£

* Õâ¸ö·½·¨ÔÚPostRenderÖУ¬Í¨¹ýbDrawTraces×÷Ϊ¿ª¹Øµ÷Óá£

*******************************************************************/

5.3.ÔÚPostRender·½·¨ÖУ¬ÕÒµ½DrawHUD()·½·¨µÄµ÷Óõط½£¬ÔÚºóÃæÌí¼ÓÈçÏ´úÂ룺

1. if(bDrawTraces) 2. {

3. //¸¸ÀàÓÐÕâôһ¸öÍæÒ⣬¿ÉÒÔÏÔʾѰ·µÄÏß·¡£ 4. super.DrawRoute(Pawn(PlayerOwner.ViewTarget)); 5. DrawTraceDebugRays(); 6. }

¸´ÖÆ´úÂë

µÚÁù²½£º

ÏÖÔÚ£¬ÎÒÃÇÐèÒª°ó¶¨Õâ¸öHudÀà¡£

6.1.Ê×ÏÈ£¬ÕÒµ½ÎÒÃÇ֮ǰ±àдµÄKWInfo.ucÎļþ ÔÚDefaultPropertiesÀïÌí¼ÓÒ»ÐÐ

1. //ÉèÖýçÃæÀà

2. HUDType=class'KWGame.KWHud'

¸´ÖÆ´úÂë

ÏÖÔÚ£¬Äã¿ÉÒÔµ÷ÊÔ¹¤³Ì£¬Í¨¹ý¿ØÖÆÌ¨ÊäÈëToggleIsometricDebug(Äã¿ÉÒÔÊäÈëtogglei³öÏÖÈ«²¿µÄÃüÁîºó°´tabÔÙ°´»Ø³µ,´óÐ¡Ð´Ëæ±ã)

·¢ÏÖÊó±êÒÆ¶¯µ½µÄλÖã¬ÆÁÄ»ÉϾͻáÏÔʾÄãÑ¡ÔñµÄÊǺÎÖÖ¶ÔÏó¡£

Â¥ÍâÒô£º¡°Â¥Ö÷Äã×îÇ°Ãæ·¢µÄÄǸö×ÊÔ´ÎļþÊǸÉÂïµÄ£¿ÎÒû¿´µ½µØ·½µ÷Óð¡¡± àÅ¡£¡£¡£ÄǸö¡£ÄãÒ²·¢ÏÖÁË£¬ÆäʵÕâÊǵÚÁù²½£¬²»ÊÇ×ܽᡣ ϸÐĵÄͬѧ¿ÉÄÜÒѾ­·¢ÏÖÁË£¬ÄǸö×îÇ°ÃæµÚÒ»²½·¢µÄ×ÊÔ´ÆäʵÊÇÒ»¸öÊó±êÖ¸ÕëµÄ×ÊÔ´¡£

ÄÇô£¬ÎÒÃÇ»¹ÊÇ˵˵Ôõô¼ÓÔØÒ»¸öÊó±êÖ¸Õë°Ñ£¬¶ø²»ÊÇÓÃÕâÁ½¸ùÏß¡£

6.2.´ò¿ª¹¤³Ì¡£ÔÚClassesÎļþ¼ÐÀïÌí¼ÓÒ»¸öMeshMouseCursorÀà¡£²¢±àдÈçÏ´úÂë

1. class MeshMouseCursor extends Actor; 2. var() StaticMeshComponent Mesh; 3. DefaultProperties 4. {

5. Begin Object Class=StaticMeshComponent Name=MarkerMesh 6. BlockActors=false 7. CollideActors=true 8. BlockRigidBody=false 9. //Ä£ÐÍÎļþ

10. StaticMesh=StaticMesh'Effect.UI.Mouse0001mesh' 11. //ÖØÖÃÄ£Ð͵ĴóС-0.3±¶

12. Scale3D=(X=0.3,Y=0.3,Z=0.3)

13. Rotation=(Pitch=-16384, Yaw=0, Roll=0) 14. End Object

15. Mesh=MarkerMesh

16. CollisionComponent=MarkerMesh 17. Components.Add(MarkerMesh)

18.}

¸´ÖÆ´úÂë

Äã¿´µ½µÄû´í£¬StaticMesh'Effect.UI.Mouse0001mesh'ÕâÍæÒâ¾ÍÊÇÎÒ×îÇ°ÃæÌṩµÄÎļþÀïµÄ×ÊԴ·¾¶Ãû¡£

ÏÖÔÚ£¬ÎÒÃÇÒѾ­´´½¨ÁËÒ»¸öActor¶ÔÏó£¨Êó±êÖ¸Õ룩£¬ÈçºÎ°ÑËûÓ¦Óõ½ÓÎÏ·ÖÐÈ¥ÄØ

6.3.ÕÒµ½ÎÒÃÇ֮ǰ±àдµÄKWPlayerController.ucÎļþ ÉùÃ÷ÈçϱäÁ¿ 1. var MeshMouseCursor MouseCursor; //3DÊó±êÖ¸Õë

¸´ÖÆ´úÂë

6.4.ÔÚKWPlayerControllerÀàµÄPostBeginPlay·½·¨ÖÐsuper.PostBeginPlay();µÄºóÃæÌí¼ÓÈçÏ´úÂ룺

1. MouseCursor = Spawn(class'MeshMouseCursor', self, 'marker');

¸´ÖÆ´úÂë

6.5.Ìí¼Ó·½·¨

1. event PlayerTick( float DeltaTime ) 2. {

3. super.PlayerTick(DeltaTime);

4. //ÉèÖõ±Ç°Êó±êµÄλÖÃΪKWHudÖÐPostRender·½·¨È¡µ½µÄMouseHitWorldLocation

5. MouseCursor.SetLocation(MouseHitWorldLocation); 6. }

¸´ÖÆ´úÂë

PlayerTickÊǸ¸ÀàµÄÒ»¸ö·½·¨£¬ÎÒÃÇÖØÔØÁËËü¡£

ÔÚÕâÀÎÒÃÇû±ØÒªÈ¥µ÷Óø¸ÀàµÄsuper.PlayerTick()ÁË¡£ ËûÔ­±¾»áͨ¹ýPlayerTickÀ´Òƶ¯£¨¿É²ÎKingdomWorld\\Development\\Src\\Engine\\Classes\\PlayerController.uc£© µ±È»ÕâЩ¶¼ÒªÎÒÃÇÖØÐÂÀ´×öÁË£¬ËùÒÔÎÞÐèµ÷ÓÃÔ­±¾µÄ¹ý³ÌÁË¡£

¿¼Ê¹ÓÃMouseHitWorldLocationÊÇÒòΪÎÒÃÇÈÃÊó±êµÄλÖóÊÏÖÈýά״̬£¬ËûÒ»Ö±¸ú×ÅµØ±í£¨»òÕßÎïÌ壩×ß¡£

µ±È»£¬ÄãÒ²¿ÉÒÔÉèÖÃËüΪһ¸ö2DλÖá£

ÕâʱºòÎÒÃǵ÷ÊÔÏîÄ¿£¬¿ÉÒÔ·¢ÏÖÊó±êµÄÖ¸ÕëÒѾ­¸úËæ×ÅÎÒÃǶ¯ÁË£¬²¢ÇÒÏÔÊ¾ÒÆ¶¯µ½Î»ÖõĶÔÏóÃû

Â¥ÍâÒô£º¡°ÕâÖ¸ÕëºÃ³ó°¡£¬ºÚ²»À­¼¸Ò»ÍÓ¡±

àÅ¡£¡£¡£Õâλͬѧ£¬ÕâÊÇ´úÂë½Ì³Ì¡£¡£¡£ÄãÒ²¿ÉÒÔ°ÑËû×ö³É2DµÄͼƬÂµ±È»×ö3DÊÇΪÁ˽̳ÌÐèÒª¡£

µ±È»£¬»¹¼ÇµÃÎÒÃÇ×Ô¶¨ÒåµÄPawnÀàÂð£¿Äã¿ÉÒÔÊÔןÍKWPawnÒ»Ñù£¬Ìí¼ÓÒ»¸öµÆ¹â¸øËû¡££¨±¾ÎIJ»×ö˵Ã÷£¬×Ô¼º¶¯ÊÖ²ÅÓÐÀÖȤÂµ±×÷±¾½Ú×÷Òµ£©

×ܽ᣺

ÕâÒ»½ÚÖ÷ҪȡµÃÁËÎÒÃÇ×ß·ÐèÒªµÄһЩ¹Ø¼üÊý¾Ý£¬²¢ÇÒ¼òµ¥½éÉÜÁËäÖȾµÄ·½·¨ºÍÈçºÎÇø±ð²»Í¬¶ÔÏóµÄ´¦Àí¡£

ÔÚÏÂÒ»½ÚÖУ¬ÎÒÃǽ«»áʹÓÃÎÒÃÇ×Ô¼º×öµÄÕâ¸öÊó±ê£¬À´½øÐÐ×ß·¡£

ÔÚÇ°ÃæµÄ½Ì³ÌÖУ¬ÎÒÃÇÒѾ­½«ÎÒÃǵÄÊó±êÖ¸Õë·ÅÈ볡¾°ÖÐÁË

½ÓÏÂÀ´£¬ÎÒÃǽ«È«Ãæ½Ó¹ÜÒýÇæµÄÊäÈë¡£°ÑËûµÄ¿ØÖÆ·½Ê½½»¸øÎÒÃÇÀ´´¦Àí¡£

µÚÒ»²½£º

Ê×ÏÈÎÒÃÇ°Ñ KingdomWorld\\UTGame\\Config\\UTInput.ini Ìí¼Ó½ø¹¤³Ì£¨ÒÔÌí¼ÓΪÁ´½Ó·½Ê½£¬¾ßÌå²Î¿¼µÚÒ»ÕµÚÒ»½Ú£© ÕÒµ½[Engine.PlayerInput]ÖеÄ

Bindings=(Name=\Bindings=(Name=\

ÕâÀïÎÒÌØ±ð˵Ã÷Ò»ÏÂUTInput.ini ÀÒýÇæ»áͨ¹ýËû£¬ÕÒµ½ÏàÓ¦µÄÓ³Éä¿ØÖÆ·½·¨¡£

Name=\Ϊµ×²ã·½·¨£¬ÕâÊÇÒ»¸öÊó±ê¹öÂÖÒÆ¶¯Ê¼þ¡£ Command=\ºóÃæÕâ¸öΪÕâ¸öʼþ½«»á¶ÔÓ¦µÄ¿ØÖÆÌ¨ÃüÁî¡£

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)