Unity3d笔记】的更多相关文章

一.材质和着色器 1.材质和着色器紧密的联系,其中材质相当于是一个框架,而着色器就是框架中中的内容.在材质框架中可以选择不同的Shader并调节不同的 属性 Material和Physic Material区别?PhysicMaterial 物理材质:物理材质描述,如何处理物体碰撞(摩擦,弹性).Material 材质(材质类)为了获得一个对象使用的材质,可以使用 Renderer.material 属性: 导入的资源Material:Normal map (法线贴图),新建的Material材…
一.输入轴 默认输入轴: Horizontal 和 Vertical被映射到w, a, s, d键和方向键 Fire1, Fire2, Fire3被分别映射到Ctrl,Option(Alt)和Command键 Mouse X 和 Mouse Y被映射到鼠标移动增量 Window Shake X 和 Window Shake Y 被映射到窗口的移动 //[ʃeɪk]vt. 动摇:摇头:使发抖:使心绪不宁[烦恼,惊吓] 添加新的输入轴 选择菜单Edit->Project Settings->Inp…
实现目标: 1.使用个性化Box控件 2.个性化Lable控件 3.添加纵向滚动条 4.新建SelectedItem样式 一.最终效果: 二.主要代码 using UnityEngine; using System.Collections; /// <summary> /// 选项卡二 /// </summary> [System.Serializable] public class Item { public Texture icon; public string name;//…
要实现的功能: 1.个性化Windows界面 2.减少个性化的背景图片尺寸 3.个性化样式ExitButton和TabButton 4.实现三个选项卡窗口 一.个性化Windows界面 1.1.创建一个空的GameObject.在Project中新建GUI Skin 用于绘制Windows图片 1.2 GUI Skin设置 1.3效果 按M键盘 弹出Windows窗口 二.减少个性化的背景图片尺寸 因GUISkin中图片我们用的是大图片这个在游戏中不但占资源对性能也有影响,和WebForm中相似…
要实现的目标: 1.3只小鸟初始动画 2.完善代码slingShot.js 3.完善代码BirdMoving.js 1.实现3个准备动画:Unity3D内置的动画管理器 1.1.先选择GameObject游戏对象 1.2 2.代码 using UnityEngine; using System.Collections; /// <summary> /// 小鸟弹跳 /// </summary> public class birdMove : MonoBehaviour { ///…
前言:实现小鸟的动画,之前吐槽过js写U3D,就改成了C#来写,没想到遇到问题了. 实现的效果 using UnityEngine; using System.Collections; /// <summary> /// 2D动画组件 /// </summary> public class aniSprite : MonoBehaviour { /// <summary> /// 是否启动2D动画 /// </summary> public bool isU…
创建Play界面.能个把各个图片组合成一个场景,场景组成后背景能够不停的滚动,当鼠标单击时显示图片手型鼠标 一.GUI Texture 1.创建背景.地面.树木.草 ,这里注意Z轴的排序,一层一层则第一个Z:0 后面0.1,0.2 ……否则会被遮盖不显示. 2.创建一个空的GameObject 并把上面的背景.地面.树木.草拖进来组成一个background 二.背景动起来 js代码 #pragma strict var speed:float=0.1; function Start () {…
新建3个场景,场景1 Start 十秒后自动切换到场景2 Splash,场景2在二秒后自动切换到场景3 Selection 一.场景一Start 二.场景2 Splash 三.场景3 Selection 四.步骤 1.场景1和场景2 各自创建一个GUI Texture命名为logo下一步在Images文件夹中找到相应图片拖拽过去即可. 2.在Scripts文件夹中新建js文件splash.js 代码如下: #pragma strict var timeLength:int =10;//十秒 va…
1.Label:标签控件,可以在游戏中用来展示文本字符串信息,不仅可以写字还可以贴图片. 2.Button:按钮控件,一般分图片按钮和普通的按钮,还有一个连续按钮RepeatButton注意,这个在WebForm里面是没有的. Ps:用GUI.Button(new Rect(10,200,70,30),"文字按钮" )来添加按钮时这个方法是有返回值的bool类型: 3.TextField:主要用于监听用户输入的信息. Ps:GUI.TextField(),返回用户输入的字符串信息,GU…
一.3D模型基础 1.Hierarchy 显示的是界面上的游戏对象(GameObject),每个游戏对象都有.至少要有一个Camera,点击Camera就可以在Preview中看到摄像机的视角画面.每个对象有Position(位置).Rotation(旋转.角度).Scale(缩放大小)三组属性. 2.Unity3D采用的是:沿屏幕横向为X轴.沿屏幕纵向为Y轴.垂直屏幕方向为Z轴.右.上.背向观众三个方向为正方向.左手坐标系.3.Vector3是Unity中定义的一个含有x.y.z单个字段的类,…
当变量重命名后,已序列化保存的值会丢失,如果希望继续保留其数值,可使用FormerlySerializedAs,如下代码所示: [UnityEngine.Serialization.FormerlySerializedAs("hp")] ; Unity有个隐藏的彩蛋:void Main(){},它的调用在Awake() OnEnable()之后Start()之前. unity对文件名以点开头的文件视而不见 当用enum枚举值作为Dictionary的key,在访问字典时则会产生GC,应…
       一般在游戏中,主角或者怪物会受到减速效果,或者攻击速度减慢等类似的状态.本身动作减速的同时,衔接在角色上的特效也需要改变相应的播放速度.一般特效有三个游戏组件:   关键点就是改变Animator,Animation和Particle System的Speed这个速度变量.就可以随意的控制特效的播放速度了. 代码如下: using UnityEngine; using System.Collections; public class EffectSpeedControl : Mon…
射线碰撞检测可以用来检测方向和距离: 通过Physics.RayCast光线投射来实现:常用于射击利用发射的射线来判断.还有对战中刀剑交战中.. 一.要涉及到RayCast和RayCastHit 1.1.光线投射:Physics.RayCast() static function Raycast (origin : Vector3, direction : Vector3, distance : float = Mathf.Infinity, layerMask : int = kDefault…
Unity中创建树:可以直接通过程序自动来创建树木还可以手动创建树木(本质上在我看来就是给程序自动创建的树动动”小手术“) 一.程序自动创建树木 3.1.层次视图中创建:一个平行光.摄像机.地.数并且导入资源 3.2.创建数Tree只有一个主干.选择树木的主干先添加枝干再添加树叶,多少自己决定.只要你觉得像个树就好. 3.3.添加树木的材质并调节相关属性 3.4.最后的效果 二.手动创建数 2.1.同上创建一个树Tree.并手动调节树干 这时候树的一些属性会失效 2.2.创建树枝.树叶 2.2.…
一.关节1.1..链条关节 Hinge joint :他可以模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内部相互移动而不产生作用力,但是达到固定距离后就会产生拉力 1.2..固定关节:fixed joint:可以把两个刚体连接起来,使其中一个刚体随另一个刚体一起运动,从而达到一个整体效果. 1.2.1.作为一个整体 1.2.2.有断开的效果Break Force 和扭曲力Break Torque 1.3.弹簧关节Spring Joint:模拟两个物体间有一根弹簧,大于或…
给球体添加刚体RigidBody和球体碰撞器Sphere Collider 效果: OnTriggerEnter() 代码 using UnityEngine; using System.Collections; public class trigger : MonoBehaviour { void OnTriggerEnter(Collider collider) { Destroy(collider.gameObject); } } 效果: 碰撞器: OnCollisonEnter(Coll…
一.角色控制器 U3D有两种角色控制方式:Rigidbody刚体.角色控制器组件(胶囊体组件) 面试的题目中经常会遇到这个问题: CharacterController和Rigidbody的区别? 这样回答:CharacterController自带胶囊碰撞器,里面包含有刚体的属性:Rigidbody就是刚体,使物体带有刚体的特征. 角色控制器组件常用于第一人称和第三人称的角色控制,使用角色控制器可以使人形角色实现移动.滑动.上下楼梯等动作,不是纯物理的,但是含有胶囊碰撞体,因此有碰撞检测.第一…
一.如何使用GUI事件来检测鼠标是否按下的事件: 获取当前事件:var e:Event=Event.current: using UnityEngine; using System.Collections; public class BtnEvent : MonoBehaviour { // Use this for initialization void Start() { } // Update is called once per frame void Update() { } void…
Input: 1.使用这个类能够读取输入管理器设置的按键,以及访问移动设备的多点触控或加速感应数据.想要读取轴向使用Input.GetAxis方法获取下列默认轴: "Horizontal" 和"Vertical" 映射于控制杆.A.W.S.D和箭头键(方向键). 2."Mouse X" 和"Mouse Y" 映射于鼠标,"Fire1", "Fire2" "Fire3"…
NGUI是严格遵循KISS原则(KISS原则,keep it simple and stupid ,简单的理解这句话就是,要把一个系统做的连白痴都会用.这就是用户体验的高层境界了,好听的说法也是有的,简单就是美.)并用C#编写的Unity(适用于专业版和免费版)插件,提供强大的UI系统和事件通知框架.其代码简洁,多数类少于200行代码.这意味着程序员可以很容易地扩展NGUI的功能或调节已有功能.对所有其他用户而言,这意味着更高的性能.更低的学习难度和更加有趣. 导入NGUI方法一: 导入NGUI…
一.脚本编写 1.1.同一类型的方法JS和C#的书写方式却不一样主要还是语法,在工程中创建一个Cube 分别把JSTest.js和CSharp.cs 添加到Cube中 JSTest.js #pragma strict private var i:int; private var f:float; function Start () { } function Update () { } function SetInt(_i:int) { i=_i; } function SetFloat(_f:f…
一.访问另一个物体 1.代码中定义一个public的物体 例如:var target:Transform; 在面板上直接拖拽一个物体赋值给target 2.通过GameObject.Find("物体名称") 3.通过Tag 代码:GameObject.FindWithTag("tag"); 二.Time用法 2.1 Time.deltaTime 以秒计算,完成最后一帧的时间(只读). 2.1.1.transform.Rotate(0,5*Time.deltaTime…
一.创建一个Apple00,拖拽Prfabs下的Sprite命名为Apple00,添加碰撞器Box Collider,编写代码Knife Rey1.js 二.做被切的苹果 步骤和一是一样的,但是被切的水果需要有重力,添加了一个刚体RigidBody,注意:位置Z轴不需要移动,旋转:x.y不需要旋转 三.代码 遇到一个很奇葩的问题“js调用出现问题” 找了半天也没发现什么问题啊!原来在js中头部有个““#pragma strict”  需要把这个去掉即可! #pragma strict //var…
一.步骤一创建一个空GameObject.js 二.代码 #pragma strict var myColor:Color; var firstPosition:Vector3;//鼠标点击的第一个点 var secondPosition:Vector3;//鼠标放开的位置 var middlePosition:Vector3; var isClick:boolean=false; private var lineRenderer:LineRenderer; function Start ()…
最终效果: 一.选择背景图片,选择GUI Texture 二.创建一个空的GameObject,然后添加背景音乐 三.创建GUISkin 四.主要代码 #pragma strict var myGUI:GUISkin; private var isSound1Button:boolean=false; private var isSound2Button:boolean=true; private var sound:AudioSource; function Start () { sound=…
一.代码: using UnityEngine; using System.Collections; /// <summary> /// 选项卡二 /// </summary> [System.Serializable] public class Item { public Texture icon; public string name;//key name public int amount;//数量 public string itemName; /// <summar…
实现目标: 1.个性化Box控件 2.新建TextAmount样式 3.新建TextItem样式 一.个性化Windows界面 设置GUI Skin 1.2 部分代码 Rect stateBox = , , , ); Rect weaponBox = , , , ); GUI.Box(stateBox, ""); GUI.Box(weaponBox, "");//['wepən] n. 武器,兵器 1.3效果 二.新建TextAmount样式 2.1. 代码 #re…
要实现的目标 实现个性化的鼠标 实现弹弓 选择小鸟.拉升弹弓.发射小鸟 弹弓橡皮筋 声音 1.实现个性化鼠标 效果 2.添加弹弓 建立两个材质 创建一个空GameObject 把两个shoot拖进来统一管理 3.建一个空GameObject 弹弓slingShot 3.1把投掷中心移动到弹弓发射中心,就是小鸟发射架 3.2创建一个Sphere碰撞体 调整好radius=0.2大小 4.拉伸弹弓.发射小鸟代码 using UnityEngine; using System.Collections;…
一直跟着龚老师用js写,VS智能感应用习惯后发现这里用js对初学者比较蛋疼,MONO有提示但是还是无法和VS媲美就目前来看.所以这次还是换成熟悉的VS来开发. 目标:实现关卡页面 跑起来的效果如下:   方法和之前添加图片一样,先创建GUITexture背景图片,再创建GUISkin 用于创建上图中7个图片按钮.手型鼠标直接把上节的customCusor.js 拿来即可,背景音乐选择Main Camera->Component->Audio->Audio Source C#代码如下 us…