-
一、 Unity如何通过脚本来驱动游戏
Script (脚本,Unity使用C#和UnityScript写脚本)要想挂在GameObject上就必须继承MonoBehaviour类,在GameObject上挂着的都是Component,所以Script也可以作为一个Component.
MonoBehaviour类中的函数(方法)的作用有:
· Instantiate()创建GameObject
· 通过Awake()和Start()来做初始化
· Update、LateUpdate,和FixedUpdate来更新逻辑
· 用OnGUI绘制UI
· OnCollisonEnter等进行物理运算
· OnPreCall等来控制渲染
二、 如何更新逻辑
1. 场景启动时调用所有脚本的Awake()
2. 把所有的Awake()掉完以后再调用所有脚本的Start()
3. 在每一帧调用一次Update()
4. 在所有脚本的Update()调用完后,再调用LateUpdate()
5. 然后在一帧中调用几次FiexUpdate()
注:Update()和LateUpdate()是一帧调用一次,FiexUpdate()是与时间相关的
三、 对象销毁
1. 通过Desotry来销毁一个GameObject
2. 当GameObject被销毁的时候相应的脚本会调用OnDesotry来进行析构。
四、 脚本间的通信
脚本之间也是可以相互通信的,怎么找到其他的脚本?怎么找到其他的GameObject?有两个比较重要的函数
1. GetComponment可以找到同一个物体上面挂着的其他的脚本。
2. GameObject.Find来找到其他物体。
查看全部 -
先在Awake中初始化nav=GetComponent<NavMeshAgent>();
public void MoveTo(Vextor3 position)//运动到哪里去
{
nav.SetDestination(positon);//传入的参数为要到达的终点
nav.Resume();//用来重新启动停止之后想要动的时候的意思吗?
}
public void Stop()
{
nav.Stop();//停止
}
查看全部 -
建立一个空物体,并添加Spwaner脚本初始化预制体及数量,作为缓存
判断停止的时候可以调用Spawner.Destroy();
在武器脚本中实例化缓存物体的时候调用Spawner.Spawn(预制体,spawnPoint);
判断开火:
查看全部 -
实现动画运转以及切换条件
查看全部 -
//更改摄像机的面向,位置不动,盯着角色
//要用么public player gameobject;
void Start()
{
gameobject.find("MainCamera").getcomponent<scenecamera>().player=this.gameobject;
}
void LateUpdate()
{
if(player!=null)
{
camera.transform.lookat(player.transform.position;
}
}
查看全部 -
<table><tbody><tr class="firstRow"><td><p><strong>Unity引擎基础概述</strong></p><p>行业知识汇总(引擎概念、游戏发展、VR AR的应用领域)</p><p>需求分析“概念”(对于提出的需求可以在逻辑上拆解成相应步骤);</p><p>开发工具介绍:VistualStudio IDE、MonoDevelop IDE</p><p>C#脚本语言基础:数据类型、数学运算、逻辑运算三大模块基础。</p></td></tr><tr><td><p><strong>C#脚本语言模块化开发</strong></p><p>过程性模块化封装:方法定义,理解形参、实参和返回值的意义;</p><p>面向对象模块化封装:类对象申请与使用、类对象继承、虚拟化类使用、结构体、枚举、宏;</p></td></tr><tr><td><p><strong>C#脚本语言面向对象开发</strong></p><p>C#语言OOP技术:类对象的创建和使用,理解构造和析构函数的申请与释放过程、了解C#内存申请释放的处理过程;成员变量属性化操作、纯虚类继承设计方案、类抽象性变化、使用泛型完成任意类型对象、深度复制和浅复制的操作、Object基类的使用、集合应用;</p></td></tr><tr><td><p><strong>高级数据结构(C#版本)</strong></p><p>类对象的抽象接口开发。</p><p>数据结构:单双向链表的构建与实际应用,栈的构建与使用,队列的构建与使用;</p><p>排序算法:冒泡排序、快速排序、插入排序;</p><p>设计模型:单列、工厂模式、有限状态机;</p></td></tr><tr><td><p><strong>Unity3D C#脚本基础API</strong></p><p>Unity引擎的界面、组件等介绍; 3D坐标系、向量概念介绍; MonoBehaviour类了解Unity引擎的运作机制; 使用GameObject类构建基本的游戏对象; 学习Transform类使我们的3D世界动起来; 学习Vector2/3/4类使用; 学习Mathf数学类。 学习Input辅助类掌握Unity引擎对硬件控制的反馈处理。 学习Time类使用;</p></td></tr><tr><td><p><strong>基础3D数学</strong></p><p>向量数学计算、向量数学计算与几何意义;</p><p>自定义设计向量计算类;</p><p>3X3矩阵线性计算、4X4齐次放射矩阵计算、矩阵求逆、四元数数学计算 ;</p><p>实现向量空间转换计算器;</p><p>补充三角函数(Sin, Cos, Tan, ArcCos, ArcSin, ArcTan);</p></td></tr><tr><td><p><strong>Unity3D组件编程与应用</strong></p><p>简易多线程:协同。</p><p>基础物理系统:刚体,碰撞体,射线。</p><p>摄像机组件与应用坐标系以及各个坐标系的转化。</p><p>灯光与音效组件的使用;</p><p>渲染组合套件和网格过滤组件控制。</p><p>2D物理组件;</p><p>资源系统和组件系统:Resources,Component集合。</p></td></tr><tr><td><p><strong>Unity3D动画与粒子系统</strong></p><p>使用Animation旧动画系统实现简单的重复性运动;</p><p>使用脚本实习旧动画系统实现状态机控制;</p><p>MecAnim新动画系统的学习和使用;</p><p>2D Animator动画系统综合应用;</p><p>利用新动画系统采用图示化的方式构建动作执行方案;</p><p>使用代码控制动画状态机产生运动变化;</p><p>动画系统结合粒子系统的综合应用;</p><p>Unity导航系统、场景烘焙、遮挡剔除 烘培使用技巧;</p></td></tr><tr><td><p><strong>Unity3D 文件系统与UI界面</strong></p><p>C#文件内存数据流开发;</p><p>XML文件读写;</p><p>Jsone文件读写;</p><p>UGUI布局与适配;</p><p>使用NGUI插件实现游戏UI制作;</p></td></tr><tr><td><p><strong>计算机基础图形学</strong></p><p>渲染基础概念理解(GPU工作流程简介);</p><p>学习Unity3D引擎的 ShaderLab语法;</p><p>Cg语言基础学习;</p><p>Cg语言与Unity3D引擎结合实现渲染;</p><p>基础光照着色算法(Diffuse、Phong、BinPhong);</p><p>切线空间学习实现凹凸贴图渲染;</p><p>引擎控制着色器代码工作;</p></td></tr><tr><td><p><strong>Unity3D高级开发</strong></p><p>C++语言基础:指针,引用、函数和类定义</p><p>C++语言高级开发:重载函数与运算符、OOP技术、泛型、STL模板:</p><p>C++文件数据流操作;</p><p>C#调用C++动态库;</p></td></tr><tr><td><p><strong>Unity3D 高级网络应用开发</strong></p><p>Linux、Windows、OSX多线程开发;</p><p>线程安全学习与应用;</p><p>网络套接字(Socket)套接字基础知识学习;</p><p>套接字基础通讯;</p><p>实现客户端/服务端通讯;</p><p>实现Unity引擎调用C++套接字实现引擎网络化;</p></td></tr><tr><td><p><strong>Unity项目实训</strong></p><p>学习Editor自定义组件;</p><p>学习EditorWindow工具化开发,实现Unity引擎自定义工具制作;</p><p>实现地遍系统构建;AssetsBundle打包与读取。</p></td></tr><tr><td><p><strong>Unity项目实训</strong></p><p>程序构建战斗系统核心框架;策略类游戏分析。</p><p>实现战斗系统中的控制系统;策略类游戏实现(地图编辑系统,角色技能系统、寻路系统、游戏数据读写,网络通信);</p><p>实现战斗系统中的寻路技术;</p><p>实现战斗系统中的NPC的人工智能控制;</p></td></tr><tr><td><p><strong>Unity项目实训</strong></p><p>优化战斗系统;</p><p>对于计算密度高的算法向C++方式移植;</p><p>构建MVVM视图架构,添加UI视图;</p><p>实现数据系统,让所有的角色拥有数指属性;</p></td></tr><tr><td><p><strong>Unity项目实训</strong></p><p>优化数值系统;</p><p>优化美术资源的内存占用;</p><p>优化程序的冗余算法;</p><p>优化算法的精细度; </p><p>开始移植Android和IOS平台;</p></td></tr></tbody></table><p><br /></p>查看全部
-
所有的 UI 元素必须在 Canvas 下才能生效
锚点:保证屏幕缩放时 UI 元素到锚点的距离不变
查看全部 -
AI 逻辑 渲染 动画 资源管理 物理查看全部
-
游戏的要素:
(一)逻辑
(1)游戏逻辑:游戏的玩法,用户的输入
(2)AI:NPC互动,自动寻路,追逐敌人
(3)物理运算:碰撞检测,重力,惯性,速度等物理计算
(二)显示
(1)动画系统:控制动画的播放
(2)底层渲染:告诉硬件怎么完成显示
(三)声音:相对独立,由单独的团队完成
查看全部 -
prfabs:是什么东西---类似模板的备份
1重复使用;2同时修改
查看全部 -
怎么嵌入android开发呢?
查看全部 -
游戏要素
查看全部 -
camera 摄像机 显示的画面 必须有的
Colliders 碰撞事件
directional light 方向光
查看全部 -
fbx文件 美术编辑 程序员导入
Mesh Render 渲染组件 控制渲染是否可见
mesh 决定形状
materials 材质
materials的两个重要属性:
texture 贴图
shader 着色器: 一个显卡程序 控制渲染效果 程序员编程 内置也有很多
查看全部 -
可以将资源包使用Export Package功能打包
官方demo,入门资源,asset store
右键打包出资源texture(纹理)
查看全部
举报