Unity手册_创建游戏

所需积分/C币:6 2012-11-16 09:48:14 1.49MB PDF
1
收藏 收藏
举报

Unity游戏创建,里面以JavaScript为主,讲解一些FPS类游戏的制作过程。
1.—个火箭筒例示火箭预制物当使用者按下fire。这个预制物包含一个模型网格,刚性主体,碰撞点, 和一个子游戏物体跟踪他的粒子系统。 2.火箭碰撞到且例示爆炸预制物。爆炸预制物包含—个粒子系统,—个渐暗的灯光,和个毁坏周围游 戏物体的脚本。 也可以完全使用脚本建造火箭游戏物体,添加组件和调整属性,比例示一个预制物更简单。你能使用一 行代码例示火箭,不管怎样组成火箭预制物的。例示预制物之后你也能修改他的属性(你能设置乂箭的 速度)。 更简单的,你可以以后再更新火箭。所有你建造一个火箭,不必马上添加一个跟踪粒子给他,你可以以 后再做。一旦你添加一个子游戏物体给预制物,所有你例示的火箭都会有跟踪粒子。最后,你能很快的在 检视视图中调整火箭预制物的属性,更容易展示你的游戏。 这个脚本演示火箭如何使用 Instantiate(函数。 / Require the rocket to be a rigidbody. // This way we the user can not assign a prefab without rigidbody var rocket: Rigidbody var speed =10.0; function FireRocketot var rocketClone: Rigidbody Instantiate (rocket, transform position, transform rotation); rocketclone velocity transform forward speed / You can also acccess other components/ scripts of the clone rocketClone GetComponent( My RocketScript)DoSomething(; // Calls the fire method when holding down ctrl or mouse function Update(t if(Input. GetButton Down("Fire1"))t FireRocketo; } 替代一个角色使用玩偶或毁坏物 我们假设你有一个完全作弊的敌人角色且他死亡了。你能简单的播放角色的死亡动画和使所有敌人逻辑 句柄脚本无效。你可能要移走好多脚本,添加一些基本的逻辑使别人不再工具死去的敌人,以及其他的 清理工作。 更好的方法是马上删除全部角色且使用一个例示毁坏预制物替代他。这给他更多机动性。你可以使用一个 不同的材质给死亡角色,附加完全不同的脚本,产生包含毁坏为很多块模仿毁坏的敌人的预制物,或简 单的例示一个预制物包含角色形式。 所有的设置能使用单一的 Instantiate完美实现,你只要离开为正确的你设置的预制物! 重点记住的是你使用的 I Instantiate0可以是和原始时完全不同的物体。例如,如果你有一个飞机,你有2 中模型形式。一个是飞机使用单—的游戏物体模型演示( Mesh Renderer)和使用脚本控制物理。保持模 型为单个游戏物体,你的游戏能通过减少三角形变的更快,和由一些物体组成比使用小的部分快。同样 你的飞机飞行的很好也没哟什么需要分成很多块的原因。 建造一个毁坏的飞机预制物,使用下面的步骤: 1.使用很多不同的你喜欢的模型块组合你的飞机 2.创建一个空的场景 3.拖拽模型到空的场景 4.添加刚性主体到所有部分,选取所有部分和选择 Component> Physics-> Rigidbody 5.添加碰撞盒到所有部分,选取所有部分和选择 Component-> Physics-> Box Col‖ider 6.为—个额外的特殊效果,添加—个烟一样的粒子系统作为子游戏物体到每个部分 7.现在你有一个有多个分开部分的飞机,他们有物理而落地和将创建一个粒子跟踪到现在的粒子系统。 运行并观察你的模型怎样反应,做必要的修改。 8.选择 Assets-> Create Prefab 9.拖拽包含所有飞机部分的根游戏物体到预制物 var wreck: Gameobject; // As an example, we turn the game object into a wreck after 3 seconds automatically function Start(t yield WaitForSeconds( 3); KillSelfo; // Calls the fire method when holding down ctrl or mouse function KillSelf (t //Instantiate the wreck game object at the same position we are at var wreck Clone=Instantiate(wreck, transform. position transform rotation) 7 Sometimes we need to carry over some variables from this object // to the wreck wreckCloneGetComponent(My Script). someVariable GetComponent(My Script). some Variable; // Kill ourselves Destroy(gameobject); 第一人称设计教程介绍了如何用玩偶替代-个角色和同步最后的动作状态。你能在 Tutorials页找到教程。 配置一捆物体为确切的样式 假设你想要捆绑一些物体为一个方形或圆形样式。一般是这2个之 1.完全使用代码建造物体。很单调的!放入一个值到脚本也很慢,直接而没有困难。 2.使用完整的物体作弊,复制并摆放他很多次到场景。这是单调的,且配置物体到精确的格很难。 所以使用预制物的 Instantiate(代替!我想你已经清楚为什么预制物在这些方案中比较简单。这是方案 必须的代码: / Instantiates a prefab in a circle var prefab: Gameobject; var numberofobjects= 20 var radius=5. function Start (t for(var i =0; i< numberofObjects; i++)i var angle=i* Mathf PI *2/ numberOfObjects var pos= Vector3(Mathf Cos(angle),0, Mathf Sin (angle))*radius Instantiate(prefab, pos, Quaternion identity ) / Instantiates a prefab in a grid var prefab: GameObject var grid= 5; var grid = 5; var spacing = 2.0 function Start o t for(vary=0;y grid; y++)i for (var x=0; X<gridX; X++)t var pos Vector3(X, 0, y)*spacing Instantiate(prefab, pos, Quaternion identity) 输入 Unity攴持键盘( Keyboard),游戏杆( Joystick)和游戏垫( Gamepad)输入。 实际轴( virtual axes)和按钮可以使用输入管理器(Iη put Manager)刨建和最终用户能设置键盘输 入在一个漂亮的设置框。 Graphics input Control Primary Secondary Tilt Left Tilt Right right Tilt Forwards up Tilt Back down Jump left cmd Goo left alt Double-click an entry to change it B Only show this dialog if the option key is down C Quit(Save and Quit Play 你能设置游戏杄,游戏垫,键盘和鼠标,接入他们在一个简单的脚本界面。 在脚本,所有实际轴使用他们的名字存储。 每个工程在创建时有下面的缺省输入 ●水平( Horizonta和竖直( Vertica映射为wa,s,d和方向键。 开火1(Fire1)开火2,开火3为控制,附件(At)和命令,各自 ●鼠标Ⅹ( MouseⅩ)和鼠标Y映射鼠标的三角移动。 窗口震动Ⅹ( Window shakeⅩ)和窗口震动Y映射窗囗移动 添加新的输入轴 如果你想添加新的实际轴到Edit> Project Setting-> Input菜单。这里你能改变每个轴的设置。 [INspector Ess Input Manager(Input Manager)o y Axes Size 17 y Horizontal Name Horizontal Descriptive Nam Descriptive Nega Negative Button left Positive Button right Alt Negative Butt a Alt Positive Butted Gravity 3 a 0.001 Sensitivity 3 Snap Invert Type Key/Mouse Button Axis Xi axIs Joy Num Joystick I > Vertical >Firel > Fire Fire JUmp >Mouse x >Mouse Y Mouse Scrollwheel b Window Shake x pWindow Shake Y >Horizontal )Vertical )Firel Fire >F Fire Jump 你设置毎个轴用2个按钮,其之一为游戏杆,鼠标或键盘按键。 名字(Name):核对的这个轴在脚本的名字 说明的名字( Descriptive Name):正向价值名字显示在构架对话框的输入清单用于建造 说明的消极名字( Descriptive Negative Name):反向价值名字显示在构架对话框的输入清单用于 建造 反向按钮( Negative Butten):按钮用来按下反向轴 正向按钮( Positive Buttun):按钮用来按下正向轴 At反向按钮( Alt Negative Buttun):AIt按钮用来按下反向轴 AIt正向按钮( Alt Positive button):AIt按钮用来按下正向轴 重力( Gravity):轴向滑落的以秒为单位的速度,当没有按钮按下时 死亡(Dead):类似死亡范围的尺寸 敏感度( Sensitivity):轴移动的以秒为单位的目标值,只适用与数字设备 快照(Snap):如果激活,轴的值将设置为0,当按下反向按钮时 倒置( Invert):如果激活,正向按钮变为反向,反正截然 类型Type):控制这个轴的输入类型 轴(Axis):控制这个轴的连接设备的轴 键名字( Joy num):将控制这个轴的连接的游戏杆 使用这些设置细致调整查看和感觉输入。他们在编辑器里也有标签说明。 从脚本使用输入轴 你可能质疑脚本的初始状态是这样的: Value= Input. GetAxis("Horizontal"); 一个轴的取值范围是-1到1中间为0这个情况适用游戏杆输入和键盘输入。 当然,鼠标三角和窗口三角是最后帧鼠标或窗口移动的距离。意思是他能大于1和小于-1当用户移动鼠 标太快。 这可能创建多个相同名字的值。当调用输入轴,其返回最大平均值。这可能分配多个输入设备到一个轴名 字。例如,创建一个键盘轴和—个游戏杄轴有相同的名字。 按钮名字 设置键到一个轴,你要输入键名字到正按钮或反按钮属性在检视视图。 键名字有下面的协议: 字母键:"a","b","c 数字键:“1”,"2″,"3 方向键:“up","down","left";" right 小键盘键:“[1]”,“[2]",“[B3]""[+]""[ equals ●修饰键: ●鼠标按钮(一些游戏杆): ●游戏杄按钮(特殊游戏杄): 特殊键 功能键 识别键的名字和脚本界面,检视视图中的一样。 value Input GetKey("a")

...展开详情
试读 7P Unity手册_创建游戏
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚积分or赚钱
最新推荐
Unity手册_创建游戏 6积分/C币 立即下载
1/7
Unity手册_创建游戏第1页
Unity手册_创建游戏第2页

试读结束, 可继续读1页

6积分/C币 立即下载 >