
控制角色移动播放动作或者其他逻辑则需要给这个橘色节点绑定逻辑脚本,UNity支持多种脚本语言,在此是用JAVA脚本
创建 脚本Assets --> Create ----> JavaScript 创建一个空的逻辑脚本,并将这个脚本绑定在主角对象身上,绑定方式是直接拖拽到主角节点即可。
对脚本的编写:
类及接口主要参照帮助文档,这里只介绍脚本基本结构和简单示例:
每个脚本至少都有两个函数: function Start() 可以认为是初始化 function Updata()则是每帧更新函数。
要实现对角色位置的控制移动首先要定义该角色,
首先 定义GameObject对象也就是要控制的目标: private var _MainRole:GameObject;;
在function Start() 函数中初始化该对象: inRole = GameObjectFind("MainRole"); // 从场景中查找到名叫"MainRole"的对象也就是主角。
在每帧更新时侦听键盘事件,如果按键按下W则空对象向前移动
if(InputGetKey(KeyCodeW))
{
_MainRoletransformTranslate( Vector3forward 005 );
}
至此,就已经完成按键控制角色移动的全部过程,运行游戏就可以用按键控制角色移动。
制作开头loading时的Logo界面,4秒后进入下一个界面:
建一个空Project,将屏幕分辨率改为800600
File--->Build Settings----> PC and Mac Standalone---> Player Settings---> Resolution and Presentation
创建一个GUI Texture,重命名为Logo,然后Logo放到这个GUI Texture上,修改其参数如下:
2
创建一个Scene,命名为PlayScene。然后把Scene都加入到build中
3
我们来写个脚本实现界面切换功能,然后将这个脚本赋给LogoScene中的camera,将Level值改为1,OK,运行试试吧!
END
Unity3D美工步骤-Play界面
目标:制作Play界面的背景,并实现背景循环滚动的效果
利用GUITexture搭建背景。这个就跟上面的 *** 作方法一样了,就是注意下每个Texture的位置就行了,拼成一个大背景。拼完就建立一个空的GameObject,把那些Texture组合起来,方便统一管理。
注意:修改Z轴数值可以改变各个Texture的前后显示,比如,让Texture1显示在Texture2前面,就使Texture1的Z轴数值大些就可以了
写脚本使背景循环移动原理很简单,就是利用两张背景图循环切换就行了。
注意:如果在两张背景图循环切换时发现有空隙,可以使每张背景图的宽度稍微大于屏幕显示宽度就行了。
代码很简单:
目标:改变鼠标样式,使其变成小手
原理很简单,就是将原理的鼠标光标隐藏了,然后在OnGUI里在相应的鼠标位置绘制自己喜欢的鼠标就行了,点击时和未点击时用不同的样式。OK, 试试效果吧!
目标:给Play界面添加一个个性化的Play按钮,添加按钮,我们得用GUIButton,但是我们需要修改样式,用一个作为Button的背景。这就需要GUISkin或者GUIStyle了,两者选一就可以,其实GUISkin就是一堆GUIStyle的组合。本例中我们使用GUISkin,因为后续的界面还要用到别的样式的Button。1 创建一个GUISkin, Assets--->Create--->GUI Skin, 然后在Custom Styles添加你想要的按钮。
接下来我们写代码,添加这个个性化的按钮,我先上代码了
目标:给Play界面添加一个退出界面和背景音乐
添加一个退出按钮,方法和第四讲添加Play按钮一样
添加一个d出的窗口,用来给用户选择退出还是不退出。
这个代码里涉及到一个新的GUI,那就是Window。使用方法也简单,创建时跟其他GUI控件类似,只不过这里面多一个参数是函数,在这个函数里用户可以绘画自己想要的窗口,以及做自己想做的事!
未完,第二季后期呈现!
if (Applicationplatform == RuntimePlatformAndroid)//如果(App所在平台=安卓运行平台)则↓
{
path = ApplicationstreamingAssetsPath + "/Configtxt";//path变量值为anpplication对象中的streamingAssersPath值(字面意思是Assers路径的字符串格式)+字符串"/Configtxt"
}
else//如果不是安卓平台
{
path = "file://" + ApplicationstreamingAssetsPath + "/Configtxt";/路径="file://"+路径+"/Configtxt"/
}
世界空间(世界坐标World Space):比较简单,整个虚拟世界的3d空间,大小自定义,在u3d中以米作为单位如长100米宽100米高100米的立体空间
屏幕空间(屏幕坐标Screnn Space):就是屏幕的2d空间,大小就是屏幕的大小,以像素作为单位,可以设定屏幕大小,如常见的1024768等等,0点在左上角,向右为x正向,向下为y正向
视口空间(视口坐标View Space):x介于0到1,y介于0-1的2d空间,0点在左下脚,(1,1)点在右上角。
视窗和视口应该是一样的,没听说过
还有一个空间是对象空间(对象坐标Object Space):指的是以空间的某一个点作为一个对象的原点而形成的3d空间,可以理解相对于这个原点的相对空间。比如Gameobject下的子GameObject的transform组件中的x,y,z都是相对与父GameObject的值。
在代码中可以用transformposition来获取物体(子物体在世界空间的坐标),transformloaclPosition获取该对象空间的坐标(相对与父GameObject的坐标)
Unity 构建游戏(Build)时要考虑多个地方的屏幕适配问题。首先要检查的地方,就是 Build 里的 Build Settings 点开看里面的你对目标平台的分辨率的设置,是否支持全屏,限制有哪些分辨率等。你在 Unity 编辑器里测试时,也应该以你的目标平台为准来设置 Game 窗口的分辨率,在 Game 窗口上方有个箭头,点开后可以选择或输入分辨率,这样你的 Game 窗口里的所测试的才和构建后发布的游戏的屏幕效果一致。如果你用第三方插件,比如 2dtoolkit 的话,游戏的画面适配由 tkCamera 管理,它支持多种适配方式比如画面中心定位于设备中心(在手机上就是手机的中心),然后四周展开不足填黑,超过截掉等等。如果你用其他的 Unity 2D 游戏插件,要看它的文档是怎么设置屏幕适配的。
对于你丢失“星球”这个背景,你是用什么做出这个星球的呢?GameObject 还是 GUI 还是别的什么?
以上就是关于unity3d 分辨率自适应问题全部的内容,包括:unity3d 分辨率自适应问题、初1学生怎样学Unity 3D游戏制作、Unity3d中的小问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)