Unity3D开发基础知识详解
- 本文简介
- 常用方法简介
- 物体操作
- 实例化
- 网络相关
- 网络协议
- TCP
- UDP
- 代码怎么写
- 网络协议
- 编译相关
- 文件保存路径
- 学习资源推荐
本文简介
本文旨在总结之前的博客,因为之前的博客比较零散,对于各个模块之间划分不够清晰,在此博客进行总结归纳,并且附上最新遇到的一些问题及解决办法,希望能够对自己和他人都能够有所帮助。另外在本文最后附加我浏览过的比较好的,相关问题解决的文章和网站,供大家方便查阅;如果您对我的文章满意,可以收藏或者关注我。
常用方法简介
1、Start() 开始方法;
2、Update() 正常更新逻辑,每渲染一帧都会调用
3、FixedUpdate() 不受帧率的变化,固定的时间间隔被调用,怎么设置间隔?Edit->Project Setting->time下面的Fixed timestep
4、LateUpdate() 会在每一帧中被调用。在所有Update函数被调用之后才执行。有利于程序的有序执行。(例如:跟随摄像机就应该在LateUpdate执行,因为它跟随的对象也许需要在Update中执行
5、OnGUI() 游戏界面绘制、更新
6、OnCollisionEnter(Conllision other) 在刚体与刚体开始接触时候调用此方法,(记住是刚体之间的碰撞)
7、OnCollisionStay(Conllision other) 在刚体与刚体碰撞的过程中,调用此方法 每帧都会调用此方法,知道碰撞结束;
8、OnCollisionExit( Conllision other) 在刚体与刚体停止接触时,调用此方法
9、OnTriggerEnter(Collider other) 当Collider(碰撞体)进入trigger(触发器)时调用,这个消息被发送到触发器碰撞体和刚体(或者碰撞体假设没有刚体)。注意如果碰撞体附加了一个刚体,也只发送触发器事件
10、判断两个物体之间的距离 Vector3.Distance( position1,position2)
物体操作
实例化
Transform shoot = (Transform)Instantiate(shotPrefab,firePoint.gameObject.transform.position,firePoint.gameObject.transform.rotation); shoot.rigidbody.velocity= transform.TransformDirection(Vector3.forward*100f);
velocity是对物体设置某个方向的速度
- 旋转
Vector3.Rotation() 绕某个轴旋转 Quaternion.Angle()
网络相关
在这么一个多元化,网络越来越便宜和硬件性能越来越好的时代,单机游戏已经被很多早年出道的公司占据一席之地,并且单机游戏不能够有很好的社交性,至于你的应用联网了,才算一个真正的应用,那么在Unity中我们该怎么使用网络呢?
网络协议
TCP
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内[1] 另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。 详细简介还是问度娘或者查看相关书籍,建议书籍。
UDP
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。 详细简介还是问度娘或者查看相关书籍,建议书籍。
代码怎么写
其实在unity中,我们用的就是Socket编程,和服务器创建连接,并维持心跳,通过协议进行通讯;代码和我们平时在C#中写的没什么差别,要记住,unity提供的是游戏渲染引擎,开发工具,并不是语言,我们用的是C#,C#的很多特性,我们都可以使用,当然切记要注意.net版本;unity中的版本是3.5 full 和3.5 sub;这个你可以在unity buildsetting中的othersetting中找到,基本上我们如果没有特殊需求,都会采用3.5sub。
编译相关
我们的游戏或者应用做好了,肯定要烧录到设备的,那么这就牵涉到我们打包部署这个环节,如何正确打包,针对不同的平台,我们的配置该如何呢?都有哪些差异呢?
文件保存路径
每个应用安装到设备,系统都会在硬盘给它分配相应的文件存储空间,但是在不同的平台,他们相对与系统的目录路径是不一致了,unity是个跨平台的开发工具,就需要针对不同的平台进行改变,为了方便,我们都会使用条件编译,如下:
#if UNITY_ANDROID the code of android #endif #if UNITY_IPHONE the code of iphone #endif #if UNITY_WIN the code of android #endif
那么这些条件在哪里定义呢?首先你在VS的工程属性中可是设置,在unity中的buildsetting中也能够进行条件设定,代码中你也可以使用unity自带的平台个枚举,你可以通过代码提示枚举(RuntimePlatform)出来Application.platform==RuntimePlatform.Android判定运行游戏的设备是什么类型。
学习资源推荐
Unity3D开发基础知识详解相关推荐
- 工业相机基础知识详解
工业相机基础知识详解 工业相机是机器视觉系统的一个最关键的组件.他的功能很简单,就是将被检测的物体拍摄下来,然后转换成电脑可以识别的图像,以便以后进行图像处理,从而完成检测任务.工业相机俗称工业摄像机 ...
- 小白入门!网络安全基础知识详解(附知识问答)
小白入门!网络安全基础知识详解(附知识问答) 一.引论 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识.事实.数据或能力非授权使用.误用.篡改或拒绝使用所 ...
- R语言基础知识详解及概括
R语言基础知识详解及概括 目录 R语言基础知识详解及概括 R数据可视化示例 R语言进行数据创建
- R语言可视化绘图基础知识详解
R语言可视化绘图基础知识详解 图形参数:字体.坐标.颜色.标签等: 图像符号和线条: 文本属性: 图像尺寸及边界: 坐标轴.图例自定义等: 图像的组合: #install.packages(c(&qu ...
- 计算机网络相关知识 参考博客 子网掩码怎么理解 网关及网关的作用 路由器基础知识详解
子网掩码怎么理解 https://blog.csdn.net/farmwang/article/details/64132723 网关及网关的作用 https://blog.csdn.net/zhao ...
- RabbitMQ基础知识详解
RabbitMQ基础知识详解 2017年08月28日 20:42:57 dreamchasering 阅读数:41890 标签: RabbitMQ 什么是MQ? MQ全称为Message Queue, ...
- Android随机点名器,Excel基础知识-详解随机点名器
说道制作个案例纯粹意外,我多少有点选择恐惧症,为了不在"选择"上纠结,就自己小玩了一下,就用了程序做了个选择器,其实很简单,就是有小时候玩的"点兵点将",稍微变 ...
- Python基础知识详解 从入门到精通(八)魔法方法
目录 Python基础知识详解 从入门到精通(八)魔法方法 什么是魔法方法 基础魔法方法(较为常用) 比较操作符 算数运算符 反运算(类似于运算方法) 增量赋值运算 一元操作符 类型转换 上下文管理( ...
- 网络管理之基础知识详解
网络管理之基础知识详解 目录 3.1 网络的特征 3.2 拓扑结构 4.1 OSI简介 4.2 数据传输过程 4.3 分层作用 4.4 PDU 5.1 单播 5.2 多播 5.3 广播 5.4 三种通 ...
最新文章
- python利器怎么编程-python 开发利器UliPad(图文详细介绍)
- 深入理解分布式技术 - 理论基石 CAP
- Android开机自启动 .
- 第 五 课 golang语言变量
- 解决手动运行脚本执行正常而放入crontab后不正常的方法
- 微信发布新版本SDK 开发者需尽快升级
- jquery 获取元素图片_【jQuery】获取图片真实宽高
- 直接拿来用!超实用的Java数组技巧攻略
- Linux命令解释之sudo
- 解决【npm ERR! Unexpected end of JSON input while parsing near '...sh_time:141072930277'】方案...
- websocket连接相关的几个问题
- 要重新学习线性代数了!
- OSChina 周四乱弹 —— 你从小继承了程序员基因
- Appium-Get Clipboard(获取剪贴板)
- java中 toast的意思,Java中toast
- 金丹期前期:1.4、python语言-python的程序的核心数据类型:字符串、列表、元组、字典
- STM32F4中断优先级NVIC管理
- Java负整数的左移、右移、无符号右移
- 电商 竞品分析_电商平台竞品分析报告.docx
- T7983 大芳的逆行板载