Unity 3D 开发 —— 脚本编程
Unity 相关资源
Unity 官网 :http://www.unity3D.com
Unity 论坛 : http://forum.unity3d.com/forum.php
Unity 问答 :http://answers.unity3d.com/index.html
Unity 博客 :http://blogs.unity3d.com
Unity 官方在线案例 : http://unity3d.com/gallery/demos/live-demos
Unity 官方项目源文件 : http://unity3d.com/gallery/made-with-unity/game-list
Unity 在线课堂 : http://unity3d.com/learn/live-training
Unity 在线教程 :http://unity3d.com/learn/tutorials/modules
Unity 用户手册 :http://docs.untiy3d.com/Documentation/Menual/index.html
Unity 组件参考手册 :http://docs.unity3d.com/Documentation/Components/index.html
Unity 脚本手册 : http://doc.unity3d.com/Documentation/ScriptReference/index.html
Digital – Tutors 的Unity 系列教程: http://www.digitaltutors.com/software/Unity-tutorials
Lynda 出品的Unity教程 : http://www.lynda.com/Unity-D-training-tutorials/1243-0.html
Unity 向量
Vector3 成员变量
x
y
z
normalized 单位化(只读)
magnitude 向量长度
sqrMagnitude 向量长度的平方
Vector3 常用方法
Cross 叉乘
Dot 点乘
Project 计算向量在另一个向量上的夹角
Angel 返回2个向量之间夹角
Distance 返回2个向量之间距离
operator +
operator -
operator * 向量乘标量
operator / 向量除标量
operator ==
operator !=
矩阵 Matrix4X4
在Unity中,Matrix4x4 仅在Transform ,Camera, Material 和 GL 等几个类的函数中用到
齐次坐标 —— 将原本3维的向量 (x,y,z) 用4维向量 (wx,wy,wz,w)
引入目的 —— 更好的区分向量和点,使用 (x,y,z,1)表示坐标点 , 使用 (x,y,z,0)表示向量;同一用矩阵乘法表示平移,旋转,缩放变换;w=0表示无穷远的点
四元数 —— 包含一个标量分量和一个三维向量分量 Q=[w,(x,y,z)]
在3D数学中使用单位四元数表示旋转
Quatenion 类 来表示四元数 :
成员变量 —— x,y,z,w,this[int index] , eulerAngles(返回表示该旋转的欧拉角)
函数 —— Set , ToAngleAxis(将四元数转换成一个角-轴表示的旋转),SetFromToRotation (设置一个四元数表示fromDirection到toDirection的旋转)
SetLookRotation (设置一个四元数表示朝向为forward,上方向为up的旋转) ToString
operator * (连接两个旋转,作用相当于依次应用两个旋转操作)
operator == operator !=
Dot (两个旋转点乘) AngleAxis (根据旋转角和旋转轴创建一个四元数)
FromToRotation (生成一个四元数表示 fromDirection 到 头Direction 的旋转)
LookRotation (生成一个四元数表示朝向为forward 上方向为up的旋转)
Slerp 根据t值在四元数from和to之间进行球形插值
Lerp 根据t值在四元数from 和 to之间进行插值,并将结果规范化
RotateTowards 将选择from变换旋转to
Inverse 返回旋转的逆
Angle 返回a和b两个旋转之间的夹角角度
Euler 返回一个先沿z轴旋转z角度,然后沿x轴旋转x角度,y轴旋转y角度的旋转
在游戏对象的Transform组件中,变量Transform.rotation 为对象在世界坐标系下的旋转
Transform.localRotation 为对象在父对象的局部坐标系下的旋转,两个变量的类型均为四元数
var from : Transform;
var to :Transform;
var tranTime = 10.0 ; // 相机观察方向从a过渡到b所需的时间,单位秒
private var startTime : float; fuction Start()
{
startTime = Time.time;
}
functionUpdate ()
{
var fracComplete = (Time.time - startTime)/tranTime; // 计算用于插值的系数
transform.rotation = Quaternion.Slerp(from.rotation,to.rotation,fracComplete); // 平均插值
}
坐标系
世界坐标系 —— 全局坐标系
局部坐标系 —— 每个物体的独立物体坐标系,并且随物体进行相同的移动或者旋转
相机坐标系 —— 根据观察位置和方向建立的坐标系,使用坐标系可以方便地判断物体是否在相机前方以及物体之间的先后遮挡顺序
屏幕坐标系 —— 建立在屏幕上的二维坐标系,用于描述像素在屏幕上的位置
Transform 组件的 Transform.TransformPoint 方法可以将坐标点从局部坐标系转换到世界坐标系
Transform.InverseTransformPoint 从世界坐标转换到自身坐标
Transform.TransformDirection 对向量在物体坐标系和世界坐标系之间进行转换
Transform.InverseTransformDirection
Unity 3D 开发 —— 脚本编程的更多相关文章
- unity 3d开发的大型网络游戏
unity 3d开发的大型网络游戏 一.总结 1.unity的官网上面应该有游戏列表 2.unity3D是很好的3d游戏引擎,也支持2d,也能做很多画面精良的3A级游戏 3.范围:电脑游戏,手机游戏, ...
- 使用 Unity 3D 开发游戏的架构设计难点
Unity 3D 引擎对于开发者来说,入手非常快,因为它采用的是 C# 作为开发语言,这也大大降低了开发者的门槛.但凡只要懂一门编程语言的人都能使用 Unity 3D 引擎开发,另外 Unity 3D ...
- Unity 3D开发-C#脚本语言的一些基础用法
Unity 中C#语言的一些基础用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Lerp -- 线 ...
- [Unity 3D] Unity 3D 性能优化 (一)
听到过很多用Unity 3D开发游戏的程序员抱怨引擎效率太低,资源占用太高,包括我自己在以往项目的开发中也头疼过.最近终于有了空闲,可以仔细的研究一下该如何优化Unity 3D下的游戏性能.其实国外有 ...
- Unity 3d 脚本常用事件
1.学习笔记,每天晚上看看unity 3d 的教程 学点东西,先上一张图 这是 系统中脚本执行的顺序图 Awake()在MonoBehavior创建后就立刻调用,在脚本实例的整个生命周期中,Awake ...
- Unity 3D 建立开发环境
之后的基本方向 ios游戏开发,基础教程http://www.devdiv.com/unity_d_-thread-128068-1-1.html,学习Unity 3D游戏开发. 应该昨天表示,读了一 ...
- Unity 3D游戏开发学习路线(方法篇)
Unity 3D本来是由德国的一些苹果粉丝开发的一款游戏引擎,一直只能用于Mac平台,所以一直不被业外人士所知晓.但是后来也推出了2.5版,同时发布了PC版本,并将其发布方向拓展到手持移动设备.Uni ...
- 【Unity】1.0 第1章 Unity—3D游戏开发和虚拟现实应用开发的首选
分类:Unity.C#.VS2015 创建日期:2016-03-23 一.简介 Unity是跨平台2D.3D游戏和虚拟现实高级应用程序的专业开发引擎,是由Unity Technologies公司研制的 ...
- Unity 3d C#和Javascript脚本互相调用 解决方案(非原创、整理资料,并经过实践得来)
Unity 3d C#和Javascript脚本互相调用 解决方案 1.背景知识 脚本的编译过程分四步: 1. 编译所有 ”Standard Assets”, “Pro Standard Assets ...
随机推荐
- iOS: 零误差或极小误差的定时执行或延迟执行?
问题如下: 节奏类游戏需要执行很多的跟音乐节拍相关的操作,并且为了保证节奏感,需要让操作跟节拍的关系十分紧密.对两者间隔要求不能超过0.02秒或更低. 目前使用了 GCD 中的 asyncAfter( ...
- CentOS6.8下完全干净卸载mysql
来源整理于 https://www.cnblogs.com/wanghuaijun/p/6398240.html 虚拟机CentOS6.8下 先执行命令查看目录是否存在mysql 文件夹: cd ...
- ES6学习笔记(十五)Generator函数的异步应用
1.传统方法 ES6 诞生以前,异步编程的方法,大概有下面四种. 回调函数 事件监听 发布/订阅 Promise 对象 Generator 函数将 JavaScript 异步编程带入了一个全新的阶段. ...
- BZOJ 4373算术天才⑨与等差数列(线段树)
题意:给你一个长度为n的序列,有m个操作,写一个程序支持以下两个操作: 1. 修改一个值 2. 给出三个数l,r,k, 询问:如果把区间[l,r]的数从小到大排序,能否形成公差为k的等差数列. n,m ...
- 紫书 例题 10-16 UVa 12230(数学期望)
感觉数学期望的和化学里面求元素的相对原子质量的算法是一样的 就是同位素的含量乘上质量然后求和得出 这道题因为等待时机是0到2*l/v均匀分配的,所以平均时间就是l/v 再加上过河的l/v, 最后加上步 ...
- 八 rowkey设计 几种方法
简单来讲,rowkey就是 KeyValue 中的key rowkey设计之 尽量散列设计 RowKey 如第三部分第六中讲到,如果数据都是有序的存储到一个特定的范围内,将会存 ...
- UVa 11085 - Back to the 8-Queens
题目:给你一个棋盘上的八个皇后.每行一个.如今让他们互相不攻击,每一个皇后仅仅能竖着移动, 一次能够移动到本列的不论什么位置,问最少移动几步.能满足要求. 分析:搜索,八皇后.由于八皇后仅仅有92组解 ...
- cocos2d-x 3.1 学习(一):工具安装与配置环境
初级学习cocos2d-x 3.1开发,学习开发过程记录到博客上面来,哪写的不正确请指点. 1.工具安装 cocos2d-x 3.1rc0 最新版本号,下载后解压.下载地址:http://www.co ...
- Docker之基础篇
小白学Docker之基础篇 系列文章: 小白学Docker之基础篇 小白学Docker之Compose 小白学Docker之Swarm PS: 以下是个人作为新手小白学习docker的笔记总结 1 ...
- @Transactional 事务注解
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.SERIALIZABLE, rollbackFor = ...