随笔分类 - Unity3D
2013-11-22 Unity3D之旅 贵在坚持 贵在每天进步 加油
摘要:要实现的目标: 1、3只小鸟初始动画 2、完善代码slingShot.js 3、完善代码BirdMoving.js1、实现3个准备动画:Unity3D内置的动画管理器1.1、先选择GameObject游戏对象1.22、代码using UnityEngine;using System.Collections;/// /// 小鸟弹跳/// public class birdMove : MonoBehaviour{ /// /// 是否掉在地上 /// private bool isGround = false; /// /// 0-1随机变量 ...
阅读全文
摘要:要实现的目标 实现个性化的鼠标 实现弹弓 选择小鸟、拉升弹弓、发射小鸟 弹弓橡皮筋 声音1、实现个性化鼠标效果2、添加弹弓建立两个材质创建一个空GameObject 把两个shoot拖进来统一管理3、建一个空GameObject 弹弓slingShot 3.1把投掷中心移动到弹弓发射中心,就是小鸟发射架 3.2创建一个Sphere碰撞体 调整好radius=0.2大小4、拉伸弹弓、发射小鸟代码using UnityEngine;using System.Collections;public class slingShot : MonoBehaviour{ /// ...
阅读全文
摘要:前言:实现小鸟的动画,之前吐槽过js写U3D,就改成了C#来写,没想到遇到问题了。实现的效果using UnityEngine;using System.Collections;/// /// 2D动画组件/// public class aniSprite : MonoBehaviour{ /// /// 是否启动2D动画 /// public bool isUsed = false; /// /// 动画的时间(0表示永远运行) /// public float timeLength = 0; /// /// 动画有...
阅读全文
摘要:一直跟着龚老师用js写,VS智能感应用习惯后发现这里用js对初学者比较蛋疼,MONO有提示但是还是无法和VS媲美就目前来看。所以这次还是换成熟悉的VS来开发。 目标:实现关卡页面 跑起来的效果如下: 方法和之前添加图片一样,先创建GUITexture背景图片,再创建GUISkin 用于创建上图中7个图片按钮。手型鼠标直接把上节的customCusor.js拿来即可,背景音乐选择Main Camera->Component->Audio->Audio Source C#代码如下 using UnityEngine;using System.Collections;public.
阅读全文
摘要:前言:在Play页面中给Play页面添加一个“开始游戏”和“退出游戏”按钮顺便再来一个背景音乐 添加按钮可以是GUI.Button(),也可以是GUILayout.Button();给图片添加按钮可以用到GUISkin()也可以是GUIStyle(),这些有点和WebForm中开发用到的CSS样式相似,GUIStyle组成了GUISkin。 大致方法如下: 1、Assets-右键新建一个GUI Skin 2、自定义两个按钮:游戏开始按钮和回到游戏主页按钮 3、具体设置就是放入按钮图片,仔细看看和WebForm中的样式是不是很有一家的感觉 4、代码#pragma strictva...
阅读全文
摘要:创建Play界面、能个把各个图片组合成一个场景,场景组成后背景能够不停的滚动,当鼠标单击时显示图片手型鼠标一、GUI Texture 1、创建背景、地面、树木、草 ,这里注意Z轴的排序,一层一层则第一个Z:0 后面0.1,0.2 ……否则会被遮盖不显示。 2、创建一个空的GameObject 并把上面的背景、地面、树木、草拖进来组成一个background二、背景动起来js代码#pragma strictvar speed:float=0.1;function Start () {}function Update () { transform.Translate(Vector3....
阅读全文
摘要:新建3个场景,场景1Start十秒后自动切换到场景2 Splash,场景2在二秒后自动切换到场景3Selection一、场景一Start二、场景2Splash三、场景3Selection四、步骤 1、场景1和场景2 各自创建一个GUI Texture命名为logo下一步在Images文件夹中找到相应图片拖拽过去即可。 2、在Scripts文件夹中新建js文件splash.js 代码如下:#pragma strictvar timeLength:int =10;//十秒var nextLevel:int;//下一个场景private var myTime:float;function S...
阅读全文
摘要:1游戏音频1、游戏音乐:如游戏背景音乐2、游戏音效:如开枪或打怪物时“砰砰”的游戏音效Unity3D游戏引擎共支持4种音乐格式的文件,具体如下。 aiff:适用于较短的音乐文件,可用作游戏音效。 wav:适用于较短的音乐文件,可用作游戏音效。 mp3:适用于较长的音乐文件,可用作游戏音乐。 ogg:适用于较长的音乐文件,可用作游戏音乐。*需要注意的是,必须在MainCamera中勾选“AudioListener”组件案例:using UnityEngine;using System.Collections;/// /// 播放音频/// public class _9_1 : Mono...
阅读全文
摘要:1、PlayerPrefs类(生命周期???)1.1保存与读取数据 在C#中类似缓存、Cookie、Session等保存数据的,但是有点区别的是在C#中如果在取值时没有取到默认值则返回值是NULL,但Unity中如GetInt("Test",100);在取值Test时如果没有默认值则直接返回的是100; 在Unity中提供了一个用于本地持久化保存与读取数据的类——PlayerPrefs是轻量级的存储。它的工作原理是以哈希、字典的方式:键值对的形式将数据保存在文件中。PlayerPrefs类可保存与读取3种基本的数据类型:浮点型、整型和字符串型。 SetFloat():保存浮
阅读全文
摘要:1、绘制2D图像的时需要使用GL.LoadOrtho()方法来将图形映射到平面中。 2、所有绘制相关的内容都要写在OnPostRender()方法中。 3、有关GL图像库的脚本需要绑定到Hierarchy视图中Camera上,否则无法显示绘制的图像。 4、在GL图像库的平面坐标系中,每个点的横坐标和纵坐标都应当是0与1之间的浮点数,而真实的像素坐标需要根据这个浮点数来计算一、绘制线 别忘了添加物理材质public Material material;using UnityEngine;using System.Collections;/// /// GL 图像库/// 1、GL图像...
阅读全文
摘要:一个游戏组件的脚本有一个生命周期——一开始实例化,直到结束实例被销毁。在这期间,他们有时候处于激活状态,有时候处于非激活状态;对于活动,对用户有时候可见,有时候不可见本文主要讨论常见脚本的的生命周期: 如下图 常见的 script 执行方法和流程上图为 常见见的脚本 方法 下面我们看看每个方法的 OnAwake 方法: 当脚本实例被载入时Awake被调用 OnStart 方法: Start仅在Update函数第一次被调用前调用。 OnUpdate 方法 :渲染一帧之前被调用。这里是大部分游戏行为代码被执行的地方,除了物理代码 OnGUI 方法: 渲染和处理GUI事件时调用 这里不是...
阅读全文
摘要:输入与控制操作Unity为开发者提供了Input类库,其中包括键盘事件、鼠标事件和触摸事件等一切跨平台所需要的控制事件。一、键盘事件 1、按下事件 Input.GetKeyDown():如果按键被按下,该方法将返回true,没有按下则返回false。 // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.A)) { Debug.Log("您按下了A键"); } if (Input.Ge...
阅读全文
摘要:碰撞Collision. [kəˈliʒən] 碰撞;冲突;(意见,看法)的抵触;(政党等的)倾轧选择一个需要添加碰撞器的游戏对象后Component->Physics-Unity一共为对象提供了6种碰撞器,分别是Box Collider[kəˈlaidə](盒子碰撞器)、Sphere Collider[ˈkæpsju:l](球体碰撞器)、Capsule Collider(胶囊碰撞器)、Mesh Collider(网格碰撞器)和Wheel Collider(车轮碰撞器)还有一个Terrain ColliderCollider[kəˈlaidə] 相撞;碰撞;冲突;抵触物理材质1
阅读全文
摘要:Unity中力的方式有两种:第一种为普通力,需要设定力的方向与大小;第二种为目标位置力,需要设定目标点的位置,该物体将朝向这个目标位置施加力。1、案例 添加两个球体和一个立方体,另外还要给两个球体添加刚体组件Compnent-Physics-RigidBody2、代码using UnityEngine;using System.Collections;public class _6_1 : MonoBehaviour{ //施加普通力的对象 private GameObject addForce = null; //施加目标位置力的对象 private GameO...
阅读全文
摘要:using UnityEngine;using System.Collections;public class _5_6 : MonoBehaviour{ private GameObject camera0; private GameObject camera1; private GameObject camera2; /// /// 获取3个摄像机对象 /// void Start () { camera0 = GameObject.Find("Camera0"); camera1 = GameObject....
阅读全文
摘要:一、定制导航栏 Unity导航菜单栏位于游戏引擎界面的顶部,其中有很多选项且含义各不相同。Unity为开发者提供了导航菜单栏的程序接口,使用代码可以动态添加菜单栏中的选项以及子项using UnityEngine;using System.Collections;using UnityEditor;public class NewBehaviourScript : MonoBehaviour{ [MenuItem("新的菜单栏/克隆选择的对象")] static void ClothObject() { Instantiate(Selection.active...
阅读全文
摘要:一、地形1.1 树元素1.2 草元素二、光源2.1 点光源 点光源(Point Light):好像包围在一个类似球形的物体中,读者可将球形理解为点光源的照射范围,就像家里的灯泡可以照亮整个屋子一样。创建点光源的方式为在Hierarchy视图中点击“Create”→“Point Light”菜单项。 参数的含义: Type:光源的类型。点击后面的小三角,可以发现共有3个选项:Point (点光源)、Directional(平行光)和Spot(聚光灯)。选择其中一项后,可切换到当前光的类型。 Range:光照的影响范围。 Color:光照的颜色。 Intensity:光...
阅读全文
摘要:一、发送广播与消息 游戏对象之间发送的广播与消息分为三种:第一种向子对象发送,将发送至该对象的同辈对象或者子孙对象中;第二种为给自己发送,发送至自己本身对象;第三种为向父对象发送,发送至该对象的同辈或者父辈对象中;using UnityEngine;using System.Collections;public class _4_3 : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void U...
阅读全文
摘要:Unity脚本从唤醒到销毁有着一套比较完善的生命周期,添加任何脚本都必须遵守自身生命周期法则。下面介绍一下生命周期中由系统自身调用的几个比较重要的方法。 Update(){}。正常更新,用于更新逻辑。细心的读者应该可以发现每创建一个JavaScript脚本时,脚本中会默认添加这个方法。此方法每帧都会由系统自动调用一次。 LateUpdate() {}。推迟更新,此方法在Update()方法执行完后调用,同样每一帧都调用。 Awake(){}。脚本唤醒,此方法为系统执行的第一个方法,用于脚本的初始化,在脚本的生命周期中只执行一次。 FixedUpdate() {}。固定更新,...
阅读全文
摘要:一、说到GUILayout就要提到GUI,二者的区别是什么 GUILayout是游戏界面的布局。GUI(界面)和GUILayout(界面布局)功能上面是相似的从命名中就可以看到这两个东西非常相像,但是在使用过程中两者还是存在一定区别的。1、使用GUI绘制控件的时候,需要设置控件的Rect()方法,这样设置的控件非常不灵活,因为它的坐标以及大小已经固定死了,这时如果控件中的内容长度发生改变,就会直接影响展示效果。如果我们需要制作控件的自适应?怎么办?GUILayout登场见22、GUILayout制作界面,可以很方便地为我们解决上述难题。GUILayout可以自适应组件大小和自动计算组件显示..
阅读全文