【Unity 3D】学习笔记二十一:unity游戏脚本(一)


在开发游戏过程中,游戏脚本可以说是至关重要。游戏对象之间任何逻辑的判断都需要通过脚本来完成。在unity中一共支持三种语言来编写脚本:javascript,C#,boo。在入门的时候建议使用javascript来编写,因为容易上手理解。但在进阶阶段,还是用C#比较好,因为C#在编程思想上更符合unity原理,执行效率更快。


unity脚本的生命周期

unity脚本从唤醒到销毁有一段完整的生命周期,粗略的介绍一下生命周期中由系统自身调用的几个方法:

function update(  ) {  }   正常更新,用于更新对象的逻辑。每创建一个javascript脚本时都会默认添加这个方法。此方法每帧都会由系统调用一次。

function lateupdate(  ) {  }推迟更新,在update(   )后执行,同样为每帧调用。

function awake(  ) {  }脚本唤醒,系统执行的第一个方法,用于脚本的初始化,在脚本生命中只执行一次。

function fixedupdate(  ) {  }固定更新,点击edit——project settings——time菜单项后,右侧的inspector视图将显示时间管理器如下图


默认更新频率为0.02S

function start(  ) {  }此方法在 awake(  )方法后,update(  ) 方法之前执行且执行一次。

function ondestory(  ) {  }脚本销毁调用。

function onGUI(  ) {  }绘制界面,每一帧都调用。


用脚本来操作游戏对象

使用脚本来调用游戏对象有两种方式:将脚本绑定在游戏对象上,或者在代码中动态绑定脚本和删除脚本。任何对象都可以绑定多个脚本,每个脚本相互不干涉,各自完成各自的生命周期。

在创建游戏对象时,可以将模型预先放入hierarchy视图中,或者在代码中根据条件动态创建和删除。下联用一个例子来讲解这个:

function OnGUI()
{

	if(GUILayout.Button("创建立方体",GUILayout.Height(50)))
	{
		//设置该模型默认为立方体
		var objCube = GameObject.CreatePrimitive(PrimitiveType.Cube);
		//给此对象添加一个刚体用于整理感应
		objCube.AddComponent(Rigidbody);
		//设置这个游戏对象的名称
		objCube.name="Cube";
		//设置此模型材质的颜色
		objCube.renderer.material.color = Color.blue;
		//设置此模型在坐标
		objCube.transform.position = new Vector3(0.0f,10.0f,0.0f);
	}
	
	if(GUILayout.Button("创建球体",GUILayout.Height(50)))
	{
		//设置该模型默认为球体
		var objSphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
		//给此对象添加一个刚体用于整理感应
		objSphere.AddComponent(Rigidbody);
		//设置这个游戏对象的名称
		objSphere.name="Sphere";
		//设置此模型材质的颜色
		objSphere.renderer.material.color = Color.red;
		//设置此模型在坐标
		objSphere.transform.position = new Vector3(0.0f,10.0f,0.0f);
	}

}

运行游戏后,点击创建按钮后会出现相应的物体,因为游戏对象悬浮在空中,所以创建对象后会执行自由落体运动。


GameObject.CreatePrimitive()方法用于创建一个原始对象,参数可设定为立方体,球体等

AddComponent( )给该游戏对象添加组件

renderer.material.color =设置渲染材质活贴图

transform.position这是该游戏对象的位置

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值