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 ...
随机推荐
- 发送消息vs函数调用
消息发送:对象处理消息: 消息发送的selector作为消息的一部分,在对象的运行时底层参与了消息分发,最终完成动态函数调用. objc_msgSend(void /* id self, SEL op ...
- springboot整合redis,并解决乱码问题。
热烈推荐:超多IT资源,尽在798资源网 springboot 版本为 1.5.9 //如果是2.x 修改 pom.xml 也可切换成 1.5.9 <parent> <groupId ...
- linux下python3源码安装及卸载
Linux下Python3的源码编译安装和卸载方法 [日期:2019-06-21] 来源:博客园 作者:wuli潇萧 [字体:大 中 小] (一)Linux下软件的源码编译安装和卸载方法 L ...
- [转载]-win7启动本地MongoDB的四种方式
2016年04月07日 09:52:34 cherry__cheng 阅读数:19451 标签: win7启动本地MongoDB的四种方式快速启动本地mongodb 更多 个人分类: mongodb& ...
- unity gitignore
/[Ll]ibrary/ /[Tt]emp/ /[Oo]bj/ /[Bb]uild/ /[Bb]uilds/ /Assets/AssetStoreTools* # Autogenerated VS/M ...
- GenIcam标准介绍
GenICam TM的目标是为各种相机和设备提供通用编程接口.无论他们使用什么接口技术(GigE Vision,USB3 Vision,CoaXPress,Camera Link HS,Camera ...
- spring的PropertyPlaceholderConfigurer不生效的问题
经常出现这种问题,每次都debug知道原因,但每次都会忘记,所以记录一下. 原因:maven项目中使用了非maven管理的jar包(通过systemPath引用),这些jar包没有放在${projec ...
- [Poi] Setup PostCSS and Tailwind with Poi
This lesson walks through setting up a Poi project using PostCSS and the popular Tailwind library fo ...
- Android——4.2.2 文件系统文件夹分析
近期公司要整android内部培训,分配给我写个培训文档.这里记录例如以下: 撰写不易,转载请注明出处:http://blog.csdn.net/jscese/article/details/4089 ...
- windows下用ADT进行android NDK开发的具体教程(从环境搭建、配置到编译全过程)
郑重申明:如需转载本博客,请注明出处,谢谢! 这几天在学习android NDK的开发.那么首先让我们来看看android NDK开发的本质是什么. NDK(Native Development Ki ...