UnrealScript 自学笔记(一),在类中加入自定义的配置文件config(user);


UnrealScript 自学笔记(一),在类中加入自定义的配置文件config(user);

作者:华文广                                                                                2011/7/29

 

在UDK中用到大量的配置文件,这些配置文件中的参数,其实就对应着某个脚本类的变量,使用配置文件的最大好处就是,我们可以随时改变某些参数的默认值,而不虽要重新编译我们的UDK脚本,同时也可以用于让玩家去自已设定一些参数并保存下来,下次再打开游戏的时候UDK会自动加载这些配置。

在EPIC官方文档中有以下文章,做了详细介绍:http://udn.epicgames.com/Three/ConfigurationFiles.html

在这篇文章中介绍了配置文件的应用,但如何给我们自定义的类添加一个自定义的配置文件,文章中说得不是很清楚。

这里我们就拿“[UDK游戏制作初窥教程].UDK.Part.4.First.UnrealScript” 中的TutorialPawn这个类来举例说明一下吧,

 

class TutorialPawn extends UTPawn;

simulated function bool CalcCamera(float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV)
{
	local vector start,end,hitLocation, hitNormal;
	local actor a;

	start = Location;
	if(Controller != none)
	{
		end = Location - Vector(Controller.Rotation) * 192.0f;
	}
	else
	{
		end = Location - Vector(Rotation) * 192.0f;
	}
	
	a = Trace(hitLocation, hitNormal, end, start, false);
	if ( a != none )
	{
		out_CamLoc = hitLocation;
	}
	else
	{
		out_camLoc = end;
	}
	
	out_CamRot = Rotator(Location - out_Camloc);
	return true;
}

defaultproperties
{
	Begin Object Name=WPawnSkeletalMeshComponent
		bOwnerNoSee = false
	End Object
	Name="TutorialPawn"
}


CalcCamera在这里是一个计算第三人称视角的函数,里面有一个硬编码数值192.0f,指的是相机离开角色的距离,我们可以把它写到配置文件中,这样可以方便玩家修改,于是我们可以这样处理:

class TutorialPawn extends UTPawn 
	config(User);

var config float CameraDistance;
	
simulated function bool CalcCamera(float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV)
{
	local vector start,end,hitLocation, hitNormal;
	local actor a;

	start = Location;
	if(Controller != none)
	{
		end = Location - Vector(Controller.Rotation) * CameraDistance;
	}
	else
	{
		end = Location - Vector(Rotation) * CameraDistance;
	}

............................


在类声明的后面加一个config(User)设定,这里User指的是ini配置文件名,可以自定义,这个文件就文在D:\UDK\UDK-2011-05\UDKGame\Config目录下面。文件命名为UDKUser.ini,前面一定要加上UDK,要不然系统没办法识别,这个命名方式很怪,比如config(Game),它指的就是读取UDKGame.ini文件。

在UDKUser.ini文件中,我们在文件末尾加入两行:

[TutorialGame.TutorialPawn]
CameraDistance = 192.0f


[TutorialGame.TutorialPawn]
CameraDistance = 192.0f[TutorialGame.TutorialPawn] ->[包名.类名]

 

var config float CameraDistance;这就是用于配置有变量,一定要加入config这个关键字。

编译后,系统就能自动读取到这个配置参数了。

 

================================================================================================

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页