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 ...
随机推荐
- 关于概率算法的问题,不知道逻辑错在哪里,求debug
做个骰子成功几率的分析,投n颗骰子,第一次投成功的几率是a,然后投成功的骰子,需要再投1次,这次成功的几率是b.第二次成功的骰子才算最终成功. 要分析出n颗骰子,最终成功0到n颗的概率. 我写了个算法 ...
- PostgreSQL Replication之第一章 理解复制概念(2)
1.2不同类型的复制 现在,您已经完全地理解了物理和理论的局限性,可以开始学习不同类型的复制了. 1.2.1 同步和异步复制 我们可以做的第一个区分是同步复制和异步复制的区别. 这是什么意思呢?假设我 ...
- numa 和 mysql
cpu numa结构反应的内存访问速度问题: 在多核cpu的时代引入了cpu的numa(非一致内存访问结构): NUMA引入了node的概念,每个物理CPU都被视作一个node,而每个node都有一个 ...
- Vector源码学习
安全的可增长数组结构 实现: 1. 内部采用数组的方式. 1.1 添加元素,会每次校验容量是否满足, 扩容规则有两种,1.增加扩容补偿的长度,2.按照现有数组长度翻一倍.容量上限是Integer.MA ...
- python 任何基础问题,包括语法等
*)copy()和deep copy() 参考链接:https://blog.csdn.net/qq_32907349/article/details/52190796 *)OPP面向对象编程 *)接 ...
- awk条件语句
条件语句用于在运行操作之前做一个測试.在前面的章节中,我们看到了模式匹配规则的一些演示样例. 模式匹配规则本质上就是影响输入循环的条件表达式. 在这一部分,我们主要就在action中所使用的条件语句进 ...
- Raphaeljs入门到精通(一)
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- PHP Apache shutdown unexpectedly启动错误解释及解决的方法
在学PHP的时候,偶然发现XAMPP窗体Apache的启动出现错误,出现下面的错误提示: 9:52:41 [Apache] Attempting to start Apache app... 9:5 ...
- Create the Data Access Layer
https://docs.microsoft.com/en-us/aspnet/web-forms/overview/getting-started/getting-started-with-aspn ...
- Django 框架篇(四) : 视图(view)详解 以及 路由系统(url)
|--Django的View(视图) |-- CBV和FBV: |-- 给视图增加装饰器: |-- request对象: |-- response对象: |-- Django的路由系统(url): | ...