http://dong2008hong.blog.163.com/blog/static/4696882720140302451146/

Unity3D脚本中文系列教程(三)

送到动画事件。
◆ var functionName : string
描述:被调用的函数的名称
这与调用gameObject.SendMessage(animationEvent.functionName,animationEvent)相同;
◆ var messageOptions :SendMessageOptions
描述:如果选项被设置为SendMessageOptions.RequireReceiver(缺省),当消息没有被任何组件接收时将打印一个错误消息。
◆ var time:float
描述:该事件被引发的时间。
构造函数
◆ static function AnimationEvent () : AnimationEvent
描述:创建一个新的动画事件
AnimationState

AnimationState完全控制动画混合。
在大多数情况下Animation接口就足够了,并且更容易使用。如果你需要完全控制动画播放过程中的混合时,使用AnimationState。
当动画播放时,AnimationState允许你修改速度,权值。时间和层。也可以设置动画合成和wrapMode
动画
变量
◆ var blendMode : AnimationBlendMode
描述:使用哪个混合模式?
// 设置leanLeft动画为附加混合
animation["leanLeft"].blendMode = AnimationBlendMode.Additive;
◆ var clip :AnimationClip
描述:该动画状态播放的剪辑。
// 打印动画剪辑的帧频到控制台
print(animation[“walk”]clio.frameRate);
◆ var enabled : bool
描述:启用/禁用动画
对于需要考虑任何影响的动画,权值需要设置成为一个大于零的值。如果动画被禁用,时间将暂停直到动画再次启用。
// 启用walk循环
animation["Walk"].enabled = true;
animation["Walk"].weight = 1.0;
◆ var layer : int
描述:动画的层。在计算混合权值时,位于较高层的动画将首先获得它们的权值。
只有较高层的动画没有使用完全全部权值时,较低层的动画才能接收混合权值。
// 放置walk和run动画在层1
animation["Walk"].layer = ;
animation["Run"].layer = ;
◆ var length : float
描述:动画剪辑的长度,以秒计。
// 打印Walk动画的长度
print (animation["Walk"].length);
◆ var name :string
描述:动画的名称。
◆ var normalizedSpeed : float
描述:归一化播放速度。
这最常用于混合两个动画时同步播放速度。在多数情况下使用animation.SyncLayer是更容易也更好
// 同步run和walk速度
animation["Run"].normalizedSpeed = animation["Walk"].speed;
◆ var normalizedTime : float
描述:动画的当前归一化时间。
1为动画的末端。 .5为动画的中部。
// 快进到动画的中部
animation["Walk"].normalizedTime = 0.5;
◆ var speed : float
描述:动画的播放速度。1为正常播放速度。
负的播放速度将回放动画。
// 向后走
animation["Walk"].speed = -1.0;
// 以双倍速度行走
animation["Walk"].speed = ;
◆ var time :float
描述:动画的当前时间
如果时间大于长度它将按照wrapMode回绕。该值可以大于动画的长度。看这种情况下播放模式将在采样前重映射时间。这个值从0到无穷。
// 回退walk动画
animation["Walk"].time = 0.0;
◆ var weight : float
描述:动画的权值
// 设置walk动画的混合权值为0.5
animation["Walk"].weight = 0.5;
◆ var wrapMode : WrapMode
描述:动画的回绕模式
默认的wrapMode被初始化为在Animation组件中设置的回绕模式值。
// 设置walk动画回绕模式为循环
animation["Walk"].wrapMode = WrapMode.Loop;
函数
◆ function AddMixingTransform (mix : Transform, recursive : bool = true) : void
描述:添加应该被动画的变换。这允许你缩减需要创建的动画数量。
例如你可能有一个挥手的动画。你可能想在一个空闲角色或行走的角色上播放挥手动画。那么你需要为空闲和行走分别创建挥手动画。运用合成挥手动画,它将由肩膀完全控制。但是下半身不会受它的影响,继续播放空闲或行走动画。因此你只需要一个挥手动画。
如果recursive为真,所有mix变换的子也都将被动画。如果你不调用AddMixingTransform,所有动画曲线将被使用。
// 使用路径添加混合
var shoulder : Transform;
animation["wave_hand"].AddMixingTransform(shoulder);
function Start ()
{
//使用路径添加混合变换
var mixTransform = transform.Find("root/upper_body/left_shoulder");
animation["wave_hand"].AddMixingTransform(mixTransform);
}
Application

访问应用程序的运行时数据。
这个类包含静态的方法来查找相关的信息并控制运行时数据。
类变量
◆ static var absoluteURL : string
描述:到web播放器数据文件夹的绝对路径(只读)。
Application.absoluteURL 和Application.srcValue允许你检测unityWeb数据文件是否被移动或链接接到其他位置。你也许想保护这两者来防止盗用数据文件的行为。
// 检测你的数据文件是否被移动到其他的服务器
// 或是被链接到其他地方
function Start ()
{
var isPirated = false;
if (Application.platform == RuntimePlatform.WindowsWebPlayer ||Application.platform == RuntimePlatform.OSXWebPlayer)
{
if (Application.srcValue != "game.unity3d")
isPirated = true;
if (String.Compare (Application.absoluteURL,http://www.website.com/Game/game.unity3d,true)!=0)
isPirated = true;
if (isPirated)
print("Pirated web player");
}
}
◆ static var dataPath : string
描述:包含游戏数据文件夹的路径(只读)。
这个值依赖于运行的平台:
Unity 编辑器: <工程文件夹的路径>/Assets
Mac播放器: <到播发器应用的路径>/Contents
Win播放器: < 包含可执行播发器的文件夹的路径>\Data
Dasboard窗口: < dashboard widget bundle的路径>
Web播放器: 到播放器数据文件夹的绝对路径(没有实际的数据文件名称)
// 打印到数据文件夹的路径
Print(Application.dataPath);
◆ static var isEditor : bool
描述:是在Unity编辑器内运行?(只读)
如果游戏从Unity编辑器中运行,返回真;如果从其他部署目标运行返回假。
if (Application.isEditor)
{
print("We are running this from inside of the editor!");
}
◆ static var isLoadingLevel : bool
描述:正在加载某些关卡?(只读)
LoadLevel 和 LoadLevelAdditive不会立即发生 一个新的关卡在当前游戏帧之后被加载。如果关卡加载所请求的帧已经完成isLoadingLevel返回true。
参见:LoadLevel,LoadLevelAdditive
◆ static var isPlaying : bool
描述:在任何类型的播放器中时返回真(只读)。
在Unity编辑器中,如果处于播放模式时返回真。
if (Application.isPlaying)
{
print("In player or playmode");
}
◆ static var levelCount : int
描述:可用的总关卡数(只读)。
// 加载一个随机的关卡
Application.LoadLevel (Random.Range(, Application.levelCount-));
◆ static var loadedLevel : int
描述:最后一个被加载的关卡的索引(只读)。
print (Application.loadedLevel);
◆ static var loadedLevelName : string
描述:最后一个被加载的关卡的名称(只读)。
print (Application.loadedLevelName);
◆ static var platform : RuntimePlatform
描述:返回游戏运行的平台(只读)。
如果你要做一些平台相关的操作使用这个属性。参见:RuntimePlatform
function Start ()
{
if (Application.platform == RuntimePlatform.WindowsPlayer)
print ("Do something special here!");
}
◆ static var runInBackground : bool
描述:应用程序在后太时是否应该被运行?
默认为假(当程序在后台时暂停)。
// 让游戏运行,即使是在后台
Application.runInBackground = true;
◆ static var srcValue : string
描述:相对于html文件的web播放器数据文件的路径(只读)。
这是被写到html文件中的路径,它是作为object的src参数和cmbed标签。因此如果它是绝对url,srcvalue将含有绝对路径。
Application.absoluteURL 和 Application.srcValue允许你检测你的unityWeb数据文件是否被移动或链接到其他位置。你也许想保护这两者来阻止盗用数据文件的行为。
// 检测你的数据文件是否被移到其他的服务器
// 或是被链接到其他地方
function Start ()
{
Var isPirated = false;
if (Application.platform == RuntimePlatform.WindowsWebPlayer ||Application.platform == RuntimePlatform.OSXWebPlayer)
{
if (Application.srcValue != "game.unity3d")
isPirated = true;
if (String.Compare (Application.absoluteURL,"http://www.website.com/Game/game.unity3d",true)!= )
isPirated = true;
if (isPirated)
print("Pirated web player");
}
}
◆ static var streamedBytes : int
描述:我们从主Unityweb流中下载了多少字节(只读)。
在web播放器中这将返回到目前为止已经下载的压缩字节数。在独立模式或编辑器中
这个总是返回零。
参见:GetStreamProgressForLevel函数
◆ static var targetFrameRate : int
描述:命令游戏尝试以一个特定的帧率渲染。
设置targetFrameRate为-(默认)使独立版游戏尽可能快的渲染,并且web播放器游戏以50-60帧/秒渲染,取决于平台。
注意设置targetFrameRate不会保证帧率,会因为平台的不同而波动,或者因为计算机太慢而不能取得这个帧率。
在编辑器中targetFrameRate被忽略。
◆ static var unityVersion : string
描述:用于播放内容的Unity运行时版本。
类方法
◆ static function CancelQuit () : void
描述:取消退出。这可以用来在退出游戏的时候显示一个退出画面。
这个函数只工作在播发器中,在web播放器或编辑器中不做任何事。
// 延迟2秒退出。
// 在这段时间内加载退出画面
var showSplashTimeout = 2.0;
private var allowQuitting = false;
function Awake () {
// 需要在多个关卡中使用的游戏物体
DontDestroyOnLoad (this);
}
function OnApplicationQuit () {
// 如果我们还没有加载到最后的退出画面
if (Application.loadedLevelName.ToLower()!= "finalsplash")
StartCoroutine("DelayedQuit");
// Don't allow the user to exit until we got permission in
if (!allowQuitting)
Application.CancelQuit();
}
function DelayedQuit ()
{
Application.LoadLevel("finalsplash");
// 等待showSplashTimecout
yield WaitForSeconds(showSplashTimeout);
// 然后退出
allowQuitting = true;
Application.Quit();
}
◆ static function CanStreamedLevelBeLoaded(levelIndex : int) : bool
描述:可以加载流式关卡了吗?
参见:GetStreamProgressForLevel函数。 ◆ static function CanStreamedLevelBeLoaded(levelName : string) : bool
描述:可以加载流式关卡了吗?
参见:GetStreamProgressForLevel函数。
◆ static function CaptureScreenshot(filename : string) : void
描述:截取屏幕为PNG文件放置在路径filename。
如果文件已经存在,它将被覆盖。如果在web播放器或者Dashboard窗口中使用该函数,它将不做任何事情。
function OnMouseDown () {
Application.CaptureScreenshot("Screenshot.png");
}
◆ static function ExternalCall(functionName:string,params args:object[]):void
描述:调用一个包含中网页中的函数(只用于Web Player)。
调用包含在网页中名为functionNameJavaScript函数,并传递给定的参数。支持原始的数据类型(string, int, float, char)和这些类型的数字。如何其他的对象被转化为字符串(使用ToString方法)并作为字符串传递。
传递的参数数量是可变的。
// 调用网页上的MyFunction1并不使用参数。
Application.ExternalCall ("MyFunction1");
//调用网页上的MyFunction2并使用字符串参数。
Application.ExternalCall ("MyFunction2", "Hello from Unity!");
//调用网页上的MyFunction3并使用几个不同类型的参数。
Application.ExternalCall ("MyFunction3", "one", , 3.0);
被调用的在HTML中的函数只需要使用标准的语法即可,例如:
<script language="JavaScript" type="text/javascript">
<!—
// 使用来自Unity的调用,这将接受
// "Hello from Unity!" 做为参数
function MyFunction2( arg )
{
alert( arg );
}
-->
</script>
See Also: Browser to Unity communication, Application.ExternalEval.
◆ static function Externaleval_r(script : string) : void
描述:调用包含在网页中的片段脚本函数(只用于Web Player)。
这将执行包含在网页中JavaScript片段script
// 导航到前一个页面
Application.Externaleval_r("history.back()");
See Also: Browser to Unity communication, Application.ExternalCall.
◆ static function GetStreamProgressForLevel(levelIndex : int) : float
描述:下载了多少?
在web播放器中这将返回这个关卡的进度。
参见:CanStreamedLevelBeLoaded
◆ static function GetStreamProgressForLevel (levelName : string) : float
描述:下载了多少?[ ......]
在web播放器中这将返回关卡的进度。
参见:CanStreamedLeverlBeLoaded 函数。
◆ static function LoadLevel(index : int) : void
描述:加载关卡。
这个函数按照索引加载关卡。在Unity中使用File->Build Settings.....菜单可以看到所有 关卡的索引列表。在你能过加载关卡之前你必须将它添加到游戏使用关卡列表中。在 Unity中使用File->Build Settings.....并添加你需要的关卡到关卡列表中。
//加载索引为 0 的关卡
Application . LoadLevel();
当加载崭新的关卡时,所有已经加载的游戏物体都将被销毁。 如果你想让物体在被加 载新关卡时不被销毁,使用Object.DontDestroyOnLoad 。
◆ Static function LoadLevel( name : string) : void
描述:按照它的名称加载关卡。
在你能够加载关卡之前你必须将它添加到游戏使用的关卡列表中。在Unity中使用
File->Build Settings..... 并添加你需要的关卡到关卡列表中。关卡被加载所有激活物体上 的MonoBehaviour . OnLevelWasLoaded都被调用。
// 加载名为“HighScore”的关卡。
Application . LoadLevel("HighScore");
当加载新的关卡时,所有已经加载的游戏物体都将被销毁。 如果你想让物体在加载新
关卡时不被销毁,使用Object. DontDestroyOnLoad。
◆ static function LoadLevelAdditive ( index : int ) : void
◆ static function LoadLevelAdditive (name : string ) : void
描述:额外地加载一个关卡。
不同于LoadLevel,LoadLeavelAdditive 不会销毁当前关卡中的物体。新关卡中的物体
将被添加到当前关卡。这对于创建连续的虚拟世界时非常有用的,当你走过时更多的内
荣被加载。
◆ static function OpenURL( url : string ) : void
描述:在浏览器中打开url 。
在编辑器或者独立播放器模式下,这将在缺省的浏览器中使用新页打开url 。这将是浏
览器位于前端。
但在网页中执行时,包含插件的页将被重定向到 url 。
Function Start ( ) {
Application . OpenURL ("http://unity3d.com");
}
◆ Static function Quit ( ) : void
描述:退出应用程序。在编辑器或者web播放器中退出被忽略。
//当用户点击escape时退出播放器
Function Update ( ){
If ( Input GetKey ( "escape" )){
Application . Quit ( ) ;
}
}

Unity3D脚本中文系列教程(四)的更多相关文章

  1. Unity3D脚本中文系列教程(五)

    http://dong2008hong.blog.163.com/blog/static/4696882720140302848544/?suggestedreading&wumii Unit ...

  2. Unity3D脚本中文系列教程(十四)

    http://dong2008hong.blog.163.com/blog/static/469688272014032134394/ WWWFrom 类Unity3D脚本中文系列教程(十三)辅助类. ...

  3. Unity3D脚本中文系列教程(十五)

    http://dong2008hong.blog.163.com/blog/static/4696882720140322449780/ Unity3D脚本中文系列教程(十四) ◆ LightRend ...

  4. Unity3D脚本中文系列教程(十三)

    http://dong2008hong.blog.163.com/blog/static/469688272014032334486/ Unity3D脚本中文系列教程(十二) ◆ function G ...

  5. Unity3D脚本中文系列教程(七)

    http://dong2008hong.blog.163.com/blog/static/4696882720140311445677/?suggestedreading&wumii Unit ...

  6. Unity3D脚本中文系列教程(三)

    http://dong2008hong.blog.163.com/blog/static/4696882720140302323886/ Unity3D脚本中文系列教程(二) 示,属性不被序列化或显示 ...

  7. Unity3D脚本中文系列教程(十六)

    Unity3D脚本中文系列教程(十五) ◆ function OnPostprocessAudio (clip:AudioClip):void 描述:◆  function OnPostprocess ...

  8. Unity3D脚本中文系列教程(十)

    http://dong2008hong.blog.163.com/blog/static/4696882720140312627682/?suggestedreading&wumii Unit ...

  9. Unity3D脚本中文系列教程(九)

    Unity3D脚本中文系列教程(八) name 对象名称hideFlags 该物体是否被隐藏,保存在场景中或被用户修改继承的函数 GetInstanceID 返回该物体的实例id继承的类函数 oper ...

随机推荐

  1. OpenDaylight之openflowjava的编译

    最近因为工作需要开始研究opendaylight,首先需要的是编译项目. 因为项目代码都是在git.opendaylight.org上的,所以需要先安装git工具. 另因为opendaylight项目 ...

  2. cordova navigator app 对象

    navigator.app.loadUrl()  加载 web 页面的应用程序中或者系统默认的浏览器中 navigator .app.cancelLoadUrl()  在 web 页面成功加载之前取消 ...

  3. 【WinForm】“System.Data.SqlClient.SqlConnection”的类型初始值设定项引发异常,无法识别的配置节 system.serviceModel

    出现问题的原因: 在本机上没有出现问题,让一个同事测试的时候,在另外一台电脑上出现连接数据库失败,系统不能打开的问题 在网上搜了一下,有说是数据库连接字符串错误的,有说app.config文件配置不匹 ...

  4. ajax对一些没有接口的数据进行分析和添加方法

    对于一些没有接口的数据进行分析和添加方法: <script src="ajax.js"><script>//插入ajax文件 <script> ...

  5. SATA SAS SSD 硬盘介绍和评测

    SATA SATA的全称是Serial Advanced Technology Attachment,是由Intel.IBM.Dell.APT.Maxtor和Seagate公司共同提出的硬盘接口规范. ...

  6. JAVA四种线程池实例

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗?   Java   1 2 3 4 5 6 7 new Thread(new Runnable() {        ...

  7. Super Object Toolkit (支持排序)

    (* * Super Object Toolkit * * Usage allowed under the restrictions of the Lesser GNU General Public ...

  8. windows7 64bit下安装Oracle 11g R2

    Win7 bit64,安装的是64位的客户端.   1.PLSql连接数据库   (1)下载 instantclient-basic-win32-11.2.0.1.0.zip解压到Oracle要目当下 ...

  9. Java HTML页面抓取实例

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  10. 【nodejs】 文件系统(fs) 之读写文件

    //写入文件 var data = "hello world"; fs.writeFile('c:\\a.txt', data, 'ascii', function(err) { ...