Unity脚本基础2
Unity3D一些比较基本的脚本及组件(C#)
![Unity3D一些比较基本的脚本及组件(C#)](https://img.taocdn.com/s3/m/a2d564d52dc58bd63186bceb19e8b8f67c1cef9d.png)
Unity3D⼀些⽐较基本的脚本及组件(C#)通过代码创造图形//创建顶点,创建序列,创建⽹格,然后把⽹格赋给⽹格序列器//draw a trianglevoid Start () {Vector3[] vs = new Vector3[3];vs[0] = new Vector3(0,0,0);vs[1] = new Vector3(1,0,0);vs[2] = new Vector3(0,1,0);int[ts] = new int[3];ts[0] = 0;ts[1] = 1;ts[2] = 2; //要注意顺序,要⽤左⼿系,法线向外,拇指向外Mesh mesh = new Mesh();GetComponet<MeshFilter>().mesh = mesh;mesh.vertices = vs; // vertices⾄⾼点mesh.triangles = ts;}///* */////draw a triangle程序封装代码public GameObject Create Triangle(){GameObject obj = new GameObject(“Triangle”);MeshFilter mf = obj.AddComponet<MeshFilter>();obj.AddComponent<MeshRender>();Mesh mesh = new Mesh();mesh.vertices = nes[]{new Vector3(0,0,0);new Vector3(3,0,0);new Vector3(0,3,0);};mesh.triangles = new[]{0,2,1//不⽤分号,初始化系,直接把初始值放进去};mf.mesh = mesh;return obj;}Camera 的性质与使⽤public CameraClearFlags clearFlags; //clearFlags是相机清除表识public ColorbackgroundColor; //给定他的颜⾊,背景⾊,只有单⾊才起作⽤public int cullingMask; //提出掩码public class chapter6 : MonoBehaviour{public GameObject cube;void Start(){ber = 9; //把cube设置在第9层Camera cam = this.GetComponet<Camera>()’cam.clearFlags = CameraClearFlags.SolidColor;cam.backgroundColor = new Vector3(1,0,0,0); //表⽰设置颜⾊cam.cullingMask = 9; //表⽰第9层的都不会被渲染出来,也就是说cube不会显⽰出来}}//CameraClearFlags是⼀个枚举类型,有以下四个成员:solidColor 表⽰⽤backgroundColor所制定的填充背景skybox 表⽰天空盒,模拟天空效果填充Depth 只是清除深度缓存,保留上⼀帧所使⽤的颜⾊Nothing 不进⾏背景清除,这种情况在游戏和模拟应⽤中⽐较少⽤public bool orthographic;//⽤于读取和设定相机的投影⽅式,如果为true则表⽰是正交投影,否则为透视投影;正交投影可⽤于UI和2D开发public float orthographicSize; //⽤以指定正交投影的视景体的垂直⽅向尺⼨的⼀半public Rect rect; //相机对应的视⾓⼝的位置和⼤⼩,rect以单位化形式制定相机视⼝在屏幕中的位置和⼤⼩,位置⼤⼩取值范围为0~1,满屏为1Camera main = this.gameObject.GetComponet<Camera>();this.gameObject.SetActive(false);Camera cam0 = camGO0.AddComponet<Camera>();cam0.orthographic = true;cam0.transform.position = main.transform.position;cam0.transform.rotation = main.transform. rotation;cam0.orthographicSize = 2.0f; //指物体渲染后显⽰的⼤⼩远近,数值越⼤,相机视⼝越靠近该物体,从⽽该物体显⽰出来的更加⼤cam0.rect = new Rect(0f,0f, 0.5f, 0.5f); //前两个参数是camera的位置,后⾯两个参数设置相机⼤⼩(0.5f,0.5f)表⽰占x轴的⼆分之⼀,y轴的⼆分之⼀,所以总共占渲染窗⼝的四分之⼀Camera cam1 = camGO1.AddComponet<Camera>();cam1.orthographic = true;cam1.transform.position = main.transform.position;cam1.transform.rotation = main.transform. rotation;cam1.orthographicSize = 7.0f;cam1.rect = new Rect(0.5f, 0.5f, 0.5f, 0.5f);}Material,Shader,Texture(材质,着⾊器,纹理)光照、纹理等让物体更加的真实。
UnityEditor游戏开发工具详解
![UnityEditor游戏开发工具详解](https://img.taocdn.com/s3/m/2dd53119bf1e650e52ea551810a6f524cdbfcb61.png)
UnityEditor游戏开发工具详解UnityEditor是一款专业的游戏开发工具,它为开发者提供了丰富的功能和工具,可以在其中进行游戏的设计、开发、测试和调试等工作。
下面我将对UnityEditor进行详细的介绍。
第一章:UnityEditor的基础知识UnityEditor是Unity技术公司开发的一款用于创建、设计和测试游戏的工具。
它与游戏引擎Unity Engine密切结合,提供了完整的游戏开发环境。
使用UnityEditor可以在一个集成的界面下进行游戏项目的管理、场景的编辑、资源的导入和导出、脚本的编写和调试等一系列工作。
它的核心思想是所见即所得,让开发者能够更加高效地进行游戏开发。
第二章:UnityEditor的界面和布局UnityEditor的界面布局由不同的窗口组成,包括场景窗口、资源窗口、检视窗口、层次窗口、控制台窗口等。
通过自定义界面布局,开发者可以根据自己的需求来调整窗口的位置和大小。
此外,UnityEditor还支持多个编辑器实例之间的数据共享,方便不同开发者之间的协作和沟通。
第三章:UnityEditor的场景编辑功能UnityEditor提供了强大的场景编辑功能,开发者可以在其中创建、编辑和组织游戏场景。
场景窗口提供了可视化的编辑界面,开发者可以直接在其中添加、移动和调整游戏对象,设置其属性和行为,并进行实时预览。
此外,UnityEditor还支持实时光照渲染、碰撞检测、路径导航等功能,让开发者可以更加方便地进行场景的设计和优化。
第四章:UnityEditor的资源管理功能UnityEditor提供了丰富的资源管理功能,包括导入和导出资源、资源的打包和压缩、资源的分类和搜索等。
资源窗口可以显示项目中的所有资源,开发者可以通过拖拽的方式将资源添加到场景中,或者将其用于游戏对象的创建和配置。
同时,UnityEditor还支持多种资源格式的导入,包括图片、音频、视频、模型等,方便开发者使用不同类型的资源来创建丰富多样的游戏内容。
unity 3D 课件 第02章 Unity脚本程序基础知识
![unity 3D 课件 第02章 Unity脚本程序基础知识](https://img.taocdn.com/s3/m/a5785cf081c758f5f61f67c2.png)
2.3 Unity脚本的基础语法
2.3.6 成员变量和全局变量 定义在方法体外的变量是成员变量,可以在属性查看器看到,读者可 以随时在属性查看器中修改它的值。通过private创建的变量是私有变 量,这些在属性查看器中就不会显示该变量
第13页
2.3 Unity脚本的基础语法
2.3.6 成员变量和全局变量
第18页
2.3 Unity脚本的基础语法
2.3.9 一些重要的类 1. MonoBehaviour类 MonoBehaviour 类 是 C# 脚 本 的 基 类 , 其 继 承 自 Behaviour类。在C#脚本中,必须直接或间接的继承 MonoBehaviour类 2. Transform类 场景中的每一个物体都有一个 Transform 组件,它就 是 Transform 类实例化的对象。用于储存并操控物体 的位置、旋转和缩放。每一个 Transform 可以有一个 父级,允许分层次应用位置、旋转和缩放。可以在 Hierarchy 面板查看层次关系。 Transform 类中包含
返回两个向量中长度较小的向量。 Max
返回两个向量中长度较大的向量。
operator ==
两个向量是否相等
operator !=
SmoothDamp
两个向量是否不相等
随着时间的推移,逐渐改变一个 向量朝向预期的目标。
ClampMagnitude 返回向量的长度,最大不超过 第12页 maxLength所指示的长度。
2.3 Unity脚本的基础语法
2.3.2 记录时间 记录时间需要用到Time类 ,Time类中比较重要的变 量为deltaTime它指的是从最近一次调用Update或者 FixedUpdate方法到现在的时间 具体开发流程如下。 (1)创建Cube对象。点击 GameObject→3DObject→Cube (2)编写脚本。在Assets面板点击Create→C# Script。 (3)挂载脚本。脚本开发完成后,将这个脚本挂载 到游戏对象上 。
unity 3d入门教程
![unity 3d入门教程](https://img.taocdn.com/s3/m/81df260432687e21af45b307e87101f69e31fb85.png)
unity 3d入门教程本节我们将介绍如何入门使用Unity 3D。
Unity 3D是一款非常强大的游戏开发引擎,可以用于开发2D和3D的游戏。
1. 获取Unity要开始使用Unity 3D,你首先需要下载并安装Unity。
你可以在Unity官方网站上免费下载Unity的最新版本。
根据你的操作系统选择相应的下载版本,并按照安装向导一步一步安装。
2. 创建新项目打开Unity 3D,并点击"New Project"按钮来创建一个新的项目。
输入项目名称和存储路径,并选择适当的模板。
Unity提供了许多预设的模板,你可以选择基于你的游戏类型来选择适合的模板。
点击"Create"按钮创建新项目。
3. 探索Unity界面一旦项目创建成功,你将看到Unity的编辑界面。
Unity界面由多个窗口组成,包括场景视图、游戏视图、项目视图、检视器视图等等。
你可以根据你的需要调整窗口的布局,以便更方便地开发游戏。
4. 添加游戏对象在Unity中,所有的游戏对象都是通过层次结构组织的。
在项目视图中,你可以创建新的游戏对象,例如角色、环境、道具等等。
选择一个游戏对象并将其拖放到场景视图中,你就可以在场景中看到该对象了。
5. 设置游戏对象属性通过选择游戏对象并在检视器视图中修改其属性,你可以设置游戏对象的位置、旋转和缩放等属性。
你还可以为游戏对象添加组件,例如碰撞器、脚本等等,以便实现更多的功能。
6. 编写脚本Unity使用C#作为主要的脚本语言。
你可以在Unity中创建和编辑C#脚本文件,并将其附加到游戏对象上。
通过编写脚本,你可以控制游戏对象的行为、实现游戏逻辑等等。
7. 运行游戏在编辑场景视图中,你可以通过点击Unity界面的"Play"按钮来运行游戏。
你可以通过游戏视图来观察游戏的实时运行效果,并进行交互。
这是入门使用Unity 3D的基本步骤。
希望本教程对你有所帮助,并祝你在Unity 3D的学习和开发中取得成功!。
unity 3d开发教程
![unity 3d开发教程](https://img.taocdn.com/s3/m/fca9a796370cba1aa8114431b90d6c85ed3a884d.png)
unity 3d开发教程
以下是一些关于Unity 3D开发的教程,每个教程都有特定的主题,希望对您有所帮助。
1. 游戏开发基础
- 游戏对象和组件
- 场景和摄像机设置
- 用户输入和交互
- 物理引擎和碰撞检测
2. 渲染和图形
- 材质和纹理贴图
- 灯光和阴影效果
- 粒子系统和特效
- 优化和性能调优
3. 脚本编程和游戏逻辑
- C#基础和语法
- 脚本组件和消息机制
- 游戏状态和场景管理
- AI和路径寻找算法
4. 用户界面和UI设计
- 基本UI控件和布局
- 动态元素和交互效果
- 游戏菜单和设置界面
- 手势识别和多点触控
5. 音频和音效
- 音乐和背景音效
- 3D音效和环境音效
- 音频剪辑和混音处理
- 实时录音和回放功能
以上教程只是简略介绍了每个主题的内容,您可以根据自己的需求选择相应的教程进行学习。
希望对您的Unity 3D开发学习之旅有所帮助!。
Unity3D游戏开发入门教程
![Unity3D游戏开发入门教程](https://img.taocdn.com/s3/m/de8d75dab9f3f90f76c61b99.png)
第一章:体验第一个游戏雏形1-1 Unity 3D简介1-2 课程内容介绍1-3 创建游戏工程与界面介绍1-4 添加灯光、材质1-5 物体的基本操作与添加刚体1-6 创建预制与复制物体1-7 第一个脚本1-8 添加Javascript代码1-9 C#和Javascript的不同1-10 游戏物体与脚本1-11 修改脚本错误与注意问题1-12 物体的生成、销毁、加力1-13 发射炮弹1-14 销毁炮弹1-15 旋转物体1-16 解决走到地面的问题1-17 镜头的移动1-18 GUI Text物体1-19 访问其他物体1-20 引用其他物体的公有变量1-21 实现消灭计数1-22 添加按钮1-23 添加声音1-24 声音设置1-25 代码优化1-26 发布游戏1-27 添加天空盒子1-28 OnCollisionEnter()碰撞检测函数1-29 添加新场景1-30 调整场景发布顺序第二章:创建游戏世界(环境)2-1 地形-提升工具2-2 地形-展平工具2-3 地形-绘制纹理工具2-4 地形-种树工具2-5 地形-绘制细节工具2-6 地形设置2-7 添加雾和天空2-8 添加湖泊2-9 导入自定义资源包-添加声音2-10 背景音乐2-11 导入模型资源第三章:角色控制器和脚本编写详解3-1-1 检视窗口(1)3-1-2 检视面板(2)3-2 第一人称控制器(1)3-3 第一人称控制器(2)3-4 阴影设置3-5 主摄像机3-6 规范化窗口视图3-7 画中画效果3-8 脚本基础3-9 变量3-10 Vector3数据类型3-11 Rigidody.velocity3-12 控制小案例3-13 鼠标指向的旋转3-14 循环语句3-15 函数介绍1-30 调整场景发布顺序第二章:创建游戏世界(环境)2-1 地形-提升工具2-2 地形-展平工具2-3 地形-绘制纹理工具2-4 地形-种树工具2-5 地形-绘制细节工具2-6 地形设置2-7 添加雾和天空2-8 添加湖泊2-9 导入自定义资源包-添加声音2-10 背景音乐2-11 导入模型资源第三章:角色控制器和脚本编写详解3-1-1 检视窗口(1)3-1-2 检视面板(2)3-2 第一人称控制器(1)3-3 第一人称控制器(2)3-4 阴影设置3-5 主摄像机3-6 规范化窗口视图3-7 画中画效果3-8 脚本基础3-9 变量3-10 Vector3数据类型3-11 Rigidody.velocity 3-12 控制小案例3-13 鼠标指向的旋转3-14 循环语句3-15 函数介绍。
Unity游戏引擎教学指南
![Unity游戏引擎教学指南](https://img.taocdn.com/s3/m/ba2d4d85ac51f01dc281e53a580216fc700a53f6.png)
Unity游戏引擎教学指南第一章:Unity引擎的介绍Unity游戏引擎是一款强大的跨平台开发工具,可以用于开发2D和3D游戏、虚拟现实和增强现实应用等。
Unity提供了丰富的功能和工具,使开发者能够创建出各种类型的游戏。
本章将介绍Unity引擎的发展历程、特点以及适用的平台和设备。
第二章:Unity基础知识在使用Unity前,了解一些基础知识是非常重要的。
本章将介绍Unity的基本概念,如场景、游戏对象、组件等。
同时,还将介绍Unity的界面布局和常用工具的使用方法,以帮助读者快速上手Unity引擎。
第三章:游戏场景的创建和管理游戏场景是游戏中的重要元素,本章将介绍如何在Unity中创建、编辑和管理游戏场景。
从导入素材到设计地形,再到设置灯光和相机,读者将学会如何打造一个完整的游戏场景。
第四章:游戏对象和组件游戏对象是Unity中的核心概念,而组件则是游戏对象的功能模块。
本章将详细介绍Unity中常用的游戏对象和组件,如模型、粒子系统、碰撞体等。
读者将了解它们的功能和用法,并学会如何通过组件的添加和配置实现游戏的各种特效和功能。
第五章:脚本编程与游戏逻辑脚本编程是Unity游戏开发中的重要部分,它可以实现游戏的逻辑和功能。
本章将介绍Unity中的脚本语言和常用的脚本编程技巧。
通过学习脚本编程,读者将能够实现游戏的交互、动画和AI等功能。
第六章:游戏资源的管理与优化在开发过程中,合理管理和优化游戏资源是必不可少的。
本章将介绍Unity中的资源管理和优化技巧,包括贴图压缩、模型优化、资源打包和内存管理等。
通过合理的资源管理和优化,可以提高游戏的性能和用户体验。
第七章:物理引擎和碰撞检测物理引擎和碰撞检测是游戏开发中常用的技术,可以使游戏场景更加真实和具有交互性。
本章将介绍Unity中的物理引擎和碰撞检测的原理和用法。
读者将学会如何创建物理场景、添加刚体和碰撞器,并实现基本的物理效果。
第八章:音频和UI界面设计音频和UI界面是游戏中不可或缺的元素,它们可以增加游戏的趣味性和可玩性。
使用Unity游戏引擎进行游戏开发入门
![使用Unity游戏引擎进行游戏开发入门](https://img.taocdn.com/s3/m/c00f0da1760bf78a6529647d27284b73f24236d4.png)
使用Unity游戏引擎进行游戏开发入门Unity游戏引擎是一款全球知名的游戏开发引擎,在游戏开发领域具有广泛的应用。
本文将从Unity游戏引擎的基本概念、界面、脚本编程、物理模拟、场景编辑等方面介绍如何使用Unity进行游戏开发入门。
第一章:Unity游戏引擎的基本概念Unity作为一款专业的游戏开发引擎,其核心概念包括游戏对象、组件、场景、资源等。
1.1 游戏对象:游戏中的各种实体都是游戏对象,例如角色、敌人、道具等。
1.2 组件:组件是游戏对象的功能模块,例如摄像机、碰撞器等。
1.3 场景:场景是游戏中的蓝图,包含了各种游戏对象和组件。
1.4 资源:资源是游戏中使用到的各种素材,例如模型、纹理、音频等。
第二章:Unity游戏引擎的界面Unity的界面包括场景视图、游戏视图、检查器、项目视图等。
2.1 场景视图:以3D或2D形式显示当前场景中的游戏对象。
2.2 游戏视图:以实时的方式显示游戏的运行情况。
2.3 检查器:显示当前选中游戏对象的属性和组件。
2.4 项目视图:显示项目中的资源文件。
第三章:Unity游戏引擎的脚本编程Unity使用C#作为主要的脚本编程语言。
3.1 脚本编程的基本语法:包括变量定义、条件语句、循环语句等。
3.2 脚本编程的常用功能:包括游戏对象的移动、旋转、销毁等。
3.3 脚本编程的事件处理:包括键盘、鼠标等事件的响应与处理。
第四章:Unity游戏引擎的物理模拟Unity内置了物理引擎用于实现游戏中的物理效果。
4.1 刚体与碰撞器:刚体是具有物理属性的游戏对象,碰撞器用于检测物体之间的碰撞。
4.2 物理材质与摩擦力:物理材质决定了物体的摩擦力和弹性。
4.3 重力和力的作用:在Unity中可以通过重力和力对游戏对象进行物理模拟。
第五章:Unity游戏引擎的场景编辑场景编辑是游戏开发中非常重要的环节,需要进行场景的布置、灯光设置、相机调整等。
5.1 场景的布置:将游戏对象放置到场景中,设置其位置、旋转和缩放等。
Unity游戏开发引擎入门教程
![Unity游戏开发引擎入门教程](https://img.taocdn.com/s3/m/925d12da8662caaedd3383c4bb4cf7ec4bfeb663.png)
Unity游戏开发引擎入门教程第一章:Unity简介Unity是一款跨平台的游戏开发引擎,它具有强大的功能和丰富的资源库,被广泛应用于游戏开发、虚拟现实、增强现实等领域。
本章将介绍Unity的基本特点和使用优势,帮助初学者快速上手。
1.1 Unity的特点Unity具有跨平台的特点,可编写一次代码,运行在多个平台上,包括PC、移动设备等。
Unity提供了直观易懂的可视化开发工具,使开发者可以轻松创建游戏场景、设置物体属性等。
同时,Unity还具备强大的图形渲染能力和物理模拟功能,可创建逼真的游戏体验。
1.2 Unity的使用优势Unity生态系统健全,资源丰富。
Unity Asset Store为开发者提供大量的免费或付费资源包,方便开发者获取模型、贴图、音效等资源。
此外,Unity还支持C#和JavaScript等多种编程语言,使开发者能够根据自己的需求选择合适的开发方式。
1.3 Unity的安装与界面介绍要开始使用Unity,首先需要进行安装。
在Unity官网上下载安装程序,按照提示进行安装即可。
安装完成后,打开Unity界面,可以看到主窗口分为Scene视图、Hierarchy视图、Inspector视图和Project视图等。
Scene视图用于编辑场景,Hierarchy视图显示场景中的物体层级关系,Inspector视图显示当前选中物体的属性,Project视图显示项目中的资源文件。
第二章:Unity基本操作2.1 创建一个新项目在Unity主界面,点击"New"按钮,选择项目存放位置和名称,点击"Create Project"即可创建一个新的项目。
2.2 场景编辑与对象操作在Scene视图中,可以通过点击"GameObject"菜单创建各种物体,如Cube、Sphere等。
通过拖拽操作,可以改变物体的位置、旋转角度和缩放大小等。
Unity脚本入门
![Unity脚本入门](https://img.taocdn.com/s3/m/c283fc24a5e9856a561260c5.png)
Unity脚本入门2010-09-16 16:16:58| 分类:Unity3D | 标签:无|字号大中小订阅在Unity中脚本是必不可少的.因为他将定义你游戏的各种行为.这个教程将介绍javaScript 的基本使用.1.目标在Unity中,脚本是用来界定用户在游戏中的行为(或规则).Unity推荐使用的编程语言是JavaScript,同时也支持C#或Boo.2.前提本教程的重点是Unity脚本基础,前提是你已经熟悉了Unity的界面(如果不是,你可以阅读UnityGUI教程).为了使脚本更容易理解,最好有个支持JavaScript语法高亮的代码编辑器,它会将关键字用醒目的方式显示出来.可以使用SubEthaEdit编辑器.3.命名规范开始前,先说下Unity的一些规范.变量- 首写为小写字母.变量用来存储游戏状态中的任何信息.函数- 首写为大写字母.函数是一个代码块,在需要的时候可以被重复调用.类- 首写为大写字母.可以被认为是函数的库.当阅读范例时注意首写字母,将有助于你更好的理解对象之间的关系.4.用户输入我们第一个例子是在场景中实现一个简单的移动.设置场景-启动Unity.创建一个用来移动的平面.GameObject->CreateOther->Plane.在Inspector面板中设置Position为"0,0,0".-创建一个Cube.GameObject->CreateOther->Cube.坐标为"0,1,0".-我们都知道现实世界里物体成像靠的是光反射,那么我们这里也是需要光线的.GameObject->CreateOther->PointLight.坐标为"0,5,0".-保存.快捷键为Ctrl+s.我们的第一个脚本我们打算移动用户的视线,这需要通过控制主相机的位置来实现.我们就要写一个脚本,然后把脚本和相机结合起来.-创建一个空脚本.Assets->Create->JavaScript并命名为"Move".重命名快捷键为F2.-双击打开脚本Move.默认包含Update()函数.将我们的代码加入这个函数,他将在每一帧执行一次.我们需要用transform来改变相机的位置,用到Translate这个函数,他有x,y,z三个参数.我们加入以下代码:function Update(){transform.Translate(Input.GetAxis("Horizontal"),0,Input.GetAxis("V ertical"));}Input.GetAxis()函数返回一个从-1到1之间的值,如横轴上左半轴为-1到0,右半轴为0到1.如果需要,我们可以通过Edit->ProjectSettings->Input中重定义按键映射.连接脚本脚本写完了,如何让他起作用呢?我们需要把脚本赋予物体才行.-点击希望应用脚本的物体对象.这里对我们而言就是相机.从Hierarchy面板中选中它.-在菜单中选择Components->Scripts->Move,这样我们便从Inspector面板中看到相机中添加了Move这个组件.(我们也可以用鼠标把脚本拖拽到物体对象上)点击运行,我们即可前后左右来控制相机移动了.DeltaTime放在Update()函数中的代码是按照帧来执行的.如果我们需要物体的移动按照时间秒来执行.为了实现这一目标,我们需要将Input.GetAxis()函数的返回值乘以Time.deltaTime:var speed = 5;function Update(){var x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;var y = Input.GetAxis("V ertical") * Time.deltaTime * speed;transform.Translate(x, 0, z);}这里的speed为显式变量,可以在Inspector面板中看到.我们可以在使用中随时调整它的值,很方便.5.连接变量Unity允许在界面上拖拽(drag and drop)的方式赋脚本.快捷方便.这里,我们将涉及连接变量的概念.-在场景中添加一个聚光灯.GameObject->CreateOther->SpotLight.Position为"0,5,0",Rotation 为"90,0,0".-创建一个JavaScript脚本,命名为"SpotLight".我们想让聚光灯照向主相机.我们可以使用transform.LookAt()这个函数.如何使用这个函数呢?我们需要创建一个显式变量.在SporLight脚本中写入如下代码:var target : Transform;function Update(){transform.LookAt(target);}-把脚本赋予聚光灯对象.记得怎样赋予吗?要么在菜单栏Component中添加,要么鼠标拖放.之后,"target"变量就出现在Inspector面板里了.-将Hierarchy面板中的主相机对象拖放到Target变量上.如果我们想让聚光灯照向其他物体,我们也可以将其他物体拖放上去,只要是Transform类型的即可.-运行.你可以看到聚光灯一直照向主相机.6.访问组件一个游戏对象可能有多个脚本或其他组件.它将不可避免的要访问其他组件的函数或变量.Unity中通过GetComponent()函数来实现这个目的.我们现在要实现按下空格键后让聚光灯照向Cube.我们考虑一下这个步骤:1.监视空格键被按下.2.空格键按下后聚光灯照向Cube.由于SporLight脚本中有target变量,我们只需要为这个变量设定新的值就可以了.-创建一个脚本,命名为Switch,添加如下代码:var switchToTarget : Transform;function Update(){if(Input.GetButtonDown("Jump"))GetComponent(SpotLight).target = switchToTarget;}注意GetComponent()的参数,它将返回一个参数给SpotLight脚本,我们就可以用它来访问"target"变量.-添加Switch脚本到聚光灯对象,并将Cube拖放到Inspector面板中的switchToTarge变量上.-运行.按下空格后,聚光灯将照向Cube.前面我们提到,可以通过写代码的方式指定变量(而不是通过Unity界面),如何做到呢?上面按下空格时告诉聚光灯聚焦到Cube上,我们是在SpotLight脚本中做一个显式的变量,将Cube 拖放上去.而在代码中主要有2种方法去实现:1.使用对象的名称(name)2.使用对象的标签(tag)1.对象名称可以从Hierarchy面板上看到对象的名称.用GameObject.Find()函数来使这些名称作为参数.因此,我们可以这样写:function Update(){if(Input.GetButtonDown("Jump")){var newTarget = GameObject.Find("Cube").transform;GetComponent(SpotLight).target = newTarget;}}注意,以上没有出现显式的变量.2.对象标签对象标签是一个字符串,用来识别一个组件.在Inspector面板中点击Tag按钮查看内建的标签.我们也可以创建自己的标签.GameObject.FindWithTag()函数能通过具体的标签寻找组件并返回一个字符串作为参数.function Update(){if(Input.GetButtonDown("Jump")){var newTarget = GameObject.FindWithTag("fang").transform;GetComponent(SpotLight).target = newTarget;}}7.实例我们要在运行时创建(create)对象就要用到Instantiate函数.让我们来实现如何在每次按下开火按钮(鼠标左键或Ctrl键)后通过实例化一个新的对象.需要思考以下几点:1.哪个物体做我们的实例?2.在哪儿实例化?关于第一个问题,最好的办法就是显式变量.这样我们就可以随时通过拖放来改变我们的实例对象.至于在哪儿实例化,我们只要实现当按下开火键时,在用户的当前位置创建一个对象即可.实例化函数有3个参数:1.我们要建立的对象.2.对象的位置坐标.3.对象的旋转位置.完整的代码如下:var newObject : Transform;function Update(){if(Input.GetButtonDown("Fire1")){Instantiate(newObject, transform.position, transform.rotation);}}要记住,transform.position和transform.rotation是附加这个脚本的物体的位置.我们这里假设为主相机.一般情况下,将要被实例化的对象设置为预设(prefab),我们现将Cube设置为预设.-首先,让我们创建一个预置.Assets->Create->Prefab.命名为Cube.-从Hierarchy面板中选取Cube拖放到Project面板的Cube上.-创建一个脚本并命名为Create,并把上面的代码加进去.-把这个脚本赋予相机,并将Cube预设赋予脚本变量.-运行.移动相机并按下开火键,你能看到新的Cube出现.8.调试调试是发现和修正你的代码中人为错误的技巧,Unity中提供了Debug类,我们现在看看Debug.Log()函数.Log()函数允许用户发送信息到Unity的控制台.这样做的原因可能包括:1.在运行时要验证某部分代码是否达成.2.报告变量的状态.我们现在使用Log()函数,当用户点击开火按钮时,发送一个消息到Unity控制台.-打开创建的脚本并在"Instantiate"代码内"if"处添加如下代码:Debug.Log("Cube created");-运行.点击开火键,我们能看到Unity界面下方显式"Cube created".Watch另外一个有用的功能是用于调试私有变量.这使得当Debug模式被选中时Inspector面板中的变量,但它不能被编辑.为了证明这一点,我们将显式一个私有变量作为Cube实例的计数器.我们在脚本中加入两行内容,1.添加私有变量cubeCount.2.当一个cube实例创建后增加这个变量完整代码如下:var newObject : Transform;private var cubeCount = 0;function Update(){if(Input.GetButtonDown("Fire1")){Instantiate(newObject, transform.position, transform.rotation);Debug.Log("Cube created");cubeCount++;Debug.Log(cubeCount);}}9.常见脚本类型每当一个新脚本被创建,默认情况下将包含Update()函数.这里我们讲解几个其他常见的函数. FixedUpdate()在这个函数体中的代码每隔固定的间隔执行.它通常在Rigibody中有力的作用的时候被用到.如:// Apply a upwards force to the rigibody every framefunction FixedUpdate(){rigidbody.AddForce(V ector3.up);}A wake()这里的代码将被用作初始化.Start()这个函数在Update()之前,但在A wake()之后执行.Start()函数和A wake()函数的不同点在于Start()函数仅在脚本启用时候执行(Inspector面板中的复选框被选中).OnCollisionEnter()当游戏对象的碰撞脚本与另一个游戏对象碰撞时执行这个函数内的代码. OnMouseDown()当鼠标在一个载有GUI元素(GUIElement)或碰撞器(Collider)的游戏对象里按下时执行该函数体内的代码.// Loads the level named "SomeLevel" as a response// to the user clicking on the objectfunction OnMouseDown(){Application.LoadLevel("SomeLevel");}OnMouseOver()当鼠标悬停在一个GUI元素或碰撞器的对象上时,执行该函数体内的代码.如:// Fades the red component of the material to zero// while the mouse is over the meshfunction OnMouseOver(){renderer.material.color.r -= 0.1 * Time.deltaTime;}******************************************************************************* 前面我们提到,可以通过写代码的方式指定变量(而不是通过Unity界面),如何做到呢?上面按下空格时告诉聚光灯聚焦到Cube上,我们是在SpotLight脚本中做一个显式的变量,将Cube 拖放上去.而在代码中主要有2种方法去实现:1.使用对象的名称(name)2.使用对象的标签(tag)1.对象名称可以从Hierarchy面板上看到对象的名称.用GameObject.Find()函数来使这些名称作为参数.因此,我们可以这样写:function Update(){if(Input.GetButtonDown("Jump")){var newTarget = GameObject.Find("Cube").transform;GetComponent(SpotLight).target = newTarget;}}注意,以上没有出现显式的变量.2.对象标签对象标签是一个字符串,用来识别一个组件.在Inspector面板中点击Tag按钮查看内建的标签.我们也可以创建自己的标签.GameObject.FindWithTag()函数能通过具体的标签寻找组件并返回一个字符串作为参数.function Update(){if(Input.GetButtonDown("Jump")){var newTarget = GameObject.FindWithTag("fang").transform;GetComponent(SpotLight).target = newTarget;}}7.实例我们要在运行时创建(create)对象就要用到Instantiate函数.让我们来实现如何在每次按下开火按钮(鼠标左键或Ctrl键)后通过实例化一个新的对象.需要思考以下几点:1.哪个物体做我们的实例?2.在哪儿实例化?关于第一个问题,最好的办法就是显式变量.这样我们就可以随时通过拖放来改变我们的实例对象.至于在哪儿实例化,我们只要实现当按下开火键时,在用户的当前位置创建一个对象即可.实例化函数有3个参数:1.我们要建立的对象.2.对象的位置坐标.3.对象的旋转位置.完整的代码如下:var newObject : Transform;function Update(){if(Input.GetButtonDown("Fire1")){Instantiate(newObject, transform.position, transform.rotation);}}要记住,transform.position和transform.rotation是附加这个脚本的物体的位置.我们这里假设为主相机.一般情况下,将要被实例化的对象设置为预设(prefab),我们现将Cube设置为预设.-首先,让我们创建一个预置.Assets->Create->Prefab.命名为Cube.-从Hierarchy面板中选取Cube拖放到Project面板的Cube上.-创建一个脚本并命名为Create,并把上面的代码加进去.-把这个脚本赋予相机,并将Cube预设赋予脚本变量.-运行.移动相机并按下开火键,你能看到新的Cube出现.8.调试调试是发现和修正你的代码中人为错误的技巧,Unity中提供了Debug类,我们现在看看Debug.Log()函数.Log()函数允许用户发送信息到Unity的控制台.这样做的原因可能包括:1.在运行时要验证某部分代码是否达成.2.报告变量的状态.我们现在使用Log()函数,当用户点击开火按钮时,发送一个消息到Unity控制台.-打开创建的脚本并在"Instantiate"代码内"if"处添加如下代码:Debug.Log("Cube created");-运行.点击开火键,我们能看到Unity界面下方显式"Cube created".Watch另外一个有用的功能是用于调试私有变量.这使得当Debug模式被选中时Inspector面板中的变量,但它不能被编辑.为了证明这一点,我们将显式一个私有变量作为Cube实例的计数器.我们在脚本中加入两行内容,1.添加私有变量cubeCount.2.当一个cube实例创建后增加这个变量完整代码如下:var newObject : Transform;private var cubeCount = 0;function Update(){if(Input.GetButtonDown("Fire1")){Instantiate(newObject, transform.position, transform.rotation);Debug.Log("Cube created");cubeCount++;Debug.Log(cubeCount);}}9.常见脚本类型每当一个新脚本被创建,默认情况下将包含Update()函数.这里我们讲解几个其他常见的函数. FixedUpdate()在这个函数体中的代码每隔固定的间隔执行.它通常在Rigibody中有力的作用的时候被用到.如:// Apply a upwards force to the rigibody every framefunction FixedUpdate(){rigidbody.AddForce(V ector3.up);}A wake()这里的代码将被用作初始化.Start()这个函数在Update()之前,但在A wake()之后执行.Start()函数和A wake()函数的不同点在于Start()函数仅在脚本启用时候执行(Inspector面板中的复选框被选中).OnCollisionEnter()当游戏对象的碰撞脚本与另一个游戏对象碰撞时执行这个函数内的代码.OnMouseDown()当鼠标在一个载有GUI元素(GUIElement)或碰撞器(Collider)的游戏对象里按下时执行该函数体内的代码.// Loads the level named "SomeLevel" as a response// to the user clicking on the objectfunction OnMouseDown(){Application.LoadLevel("SomeLevel");}OnMouseOver()当鼠标悬停在一个GUI元素或碰撞器的对象上时,执行该函数体内的代码.如:// Fades the red component of the material to zero// while the mouse is over the meshfunction OnMouseOver(){renderer.material.color.r -= 0.1 * Time.deltaTime;}by:Cartoonboy。
《Unity3D开发入门》课程标准
![《Unity3D开发入门》课程标准](https://img.taocdn.com/s3/m/aff5f44beef9aef8941ea76e58fafab068dc445e.png)
《Unity3D开发入门》课程标准一、课程定位本课程是虚拟现实应用技术专业(VR)的一门重要的设计类专业核心必修课。
Unity3D是UnityTechnologies公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。
本课程的教学目的是培养学生使用Unity3D设计、开发游戏的基础能力,提高学生使用Unity3D调试程序和使用开发工具的能力,为从事游戏设计与开发,以及后续课程《使用Unity3D开发简单VR应用》的学习打下基础。
二、课程目标本课程作为虚拟现实应用技术专业(VR)的专业基础及核心课程,主要是着重培养学生的基本组件设计及应用能力,脚本代码编写及调试能力,以及基础的游戏开发能力,为学生进入实际的工作岗位打下坚实的游戏设计与开发基础。
教学过程主要以理论讲解、项目分析及操作演示相结合为主,引导学生掌握并能正确应用相关知识进行应用程序的开发。
1、知识目标1)了解VR编辑器的基本知识2)熟悉Unity3D开发工具、功能和作用3)掌握Unity3D3D场景的搭建操作4)理解游戏设计及开发的概念和思想5)掌握Unity3D创建游戏、开发游戏的方法6)掌握C#脚本代码的编写,C#脚本代码与游戏组件的控制实现7)掌握Unity3D游戏的发布2、能力目标D具备正确安装与配置Unity3D开发工具的能力2)具备创建Unity3D项目的能力3)具备使用Unity3D组件的能力4)具备编写C#脚本代码控制Unity3D场景的能力5)具备Unity3D游戏发布打包的能力1)具有社会主义和共产主义的理想信念;2)具有改革开放的意识和强烈的竞争意识;3)具有良好的行为规范和社会公德以及较强的法制观念;4)具有良好的职业道德和质量服务意识;5)具有不断学习、不断创新的进取精神;6)具有团队协作精神和较强的协调能力及独立工作的能力; 7)具有健康的体魄和良好的心理素质;8)具备良好的代码编写风格和代码规范化管理的素质;三、课程设计1、设计思想D教学内容框架2)总体设计思路以理解游戏开发概念及思想为基本思路、掌握基本3D游戏设计为起点,逐步掌握使用Unity3D开发3D游戏的一般步骤、方法及思路,掌握Unity3D游戏开发工具的基本使用方法,掌握游戏组件的基本使用方法,掌握C#脚本代码的编写以及脚本对游戏组件的引用和控制等方法。
Unity3D脚本中文教程
![Unity3D脚本中文教程](https://img.taocdn.com/s3/m/4f5e1299376baf1ffd4fad31.png)
Unity3D脚本中文教程Part1 一、脚本概览这是一个关于Unity内部脚本如何工作的简单概览。
Unity内部的脚本是通过附加自定义脚本对象到游戏物体组成的。
在脚本对象内部不同志的函数被特定的事件调用。
最常用的列在下面Update 这个函数在渲染一帧之前被调用这里是大部分游戏行为代码被执行的地方除了物理代码。
FixedUpdate 这个函数在每个物理时间步被调用一次这是处理基于物理游戏的地方。
在任何函数之外的代码在任何函数之外的代码在物体被加载的时候运行这个可以用来初始化脚本状态。
注意文档的这个部份假设你是用Javascript参考用C编写获取如何使用C和Boo编写脚本的信息。
你也能定义事件句柄它们的名称都以On开始例如OnCollisionEnter为了查看完整的预定义事件的列表参考MonoBehaviour 文档。
概览常用操作大多数游戏物体的操作是通过游戏物体的Transform或Rigidbody来做的在行为脚本内部它们可以分别通过transform和rigidbody访问因此如果你想绕着Y轴每帧旋转5度你可以如下写 function Update 如果你想向前移动一个物体你应该如下写 function Update 概览跟踪时间 Time类包含了一个非常重要的类变量称为deltaTime 这个变量包含从上一次调用Update或FixedUpdate根据你是在Update函数还是在FixedUpdate函数中到现在的时间量。
所以对于上面的例子修改它使这个物体以一个恒定的速度旋转而不依赖于帧率 function Update 移动物体function Update transform. Translate 0 如果你加或是减一个每帧改变的值你应该将它与相乘。
当你乘以时你实际的表达我想以10米/秒移动这个物体不是10米/帧。
这不仅仅是因为你的游戏将独立于帧而运行同时也是因为运动的单位容易理解。
Unity使用C++作为游戏逻辑脚本的研究(二)
![Unity使用C++作为游戏逻辑脚本的研究(二)](https://img.taocdn.com/s3/m/40969fbfdc3383c4bb4cf7ec4afe04a1b171b057.png)
Unity使⽤C++作为游戏逻辑脚本的研究(⼆)⽂章申明:本⽂来⾃JacksonDunstan的博客系列⽂章内容摘取和翻译,版权归其所有,附上原⽂的链接,⼤家可以有空阅读原⽂:上⼀篇⽂章写完,有同学觉得有点晦涩,其实可以多认真看两遍源码,仔细琢磨⼀下,就会有⼀种茅塞顿开的感觉:D。
今天继续上⽂,深⼊讨论⼀下C++作为游戏脚本的研究,本⽂会较长,需要写⼀些⽰例代码做讲解。
⼀、对C#指针(引⽤)的封装在上⽂,我们提到,C++对C#的调⽤,是基于C#的函数指针(引⽤)⽽来的,⽐如在C++中://return transform handle || function pointer name || take a handle to the goint32_t (*GameObjectGetTransform) (int32_t thiz);为了拓展性,我们都会倾向于对于这种int32_t类型的数据做⼀个封装,⾃然容易想到⽤⼀个结构体(结构体默认为public)namespace System{struct Object{int32_t Handle;}}利⽤继承的特点,我们可以延伸出其他类型的结构体定义:namespace UnityEngine{struct Vector3 {float x; float y; float z;};struct Transform:System::Object{void SetPosition(Vector3 val){TransformSetPosition(Handle, val);}}struct GameObject:System::Object{GameObject(){Handle = GameObjectNew();}Transform GetPosition(){Transform transform;transform.Handle = GameObjectGetTransform(Handle);return transform;}}}⼆、对内存管理的控制在C#部分,对于托管部分,是基于垃圾⾃动回收机制的,对于C++部分,相对较为简单的回收,可以基于计数的回收机制,当对象的引⽤计数为零的时候执⾏垃圾回收,那么对于我们可以定义两个全局变量来做相关的计数统计://globalint32_t managedObjectsRefCountLen;int32_t *managedObjectsRefCounts;//.....//initmanagedObjectsRefCountLen = maxManagedObjects;//c#会传⼊该数据managedObjectsRefCounts = (int32_t*)calloc(maxManagedObjects, sizeof(int32_t));这样在GameObject的初始化和解析的时候可以执⾏相关的内存管理操作:GameObject(){Handle = GameObjectNew();managedObjectsRefCounts[Handle]++;}~GameObject(){if(--managedObjectsRefCounts[Handle] == 0){ReleaseObject(Handle);}}对于其他的结构体,可以利⽤宏定义来实现类似的结构体定义中的操作。
Unity学习(三)——编写脚本
![Unity学习(三)——编写脚本](https://img.taocdn.com/s3/m/543c47f9b9f67c1cfad6195f312b3169a451eab8.png)
Unity学习(三)——编写脚本创建和编写脚本Unity ⽀持 C#和能兼容编译 DLL的 .Net语⾔来编写脚本。
创建脚本Assets -> Create -> C# Script解析脚本⽂件Unity 默认使⽤ VS打开脚本⽂件,你也可以通过 Unity -> Preferences来选择你想要打开的编辑器。
初始⽂件的内容如下所⽰:using UnityEngine;using System.Collections;public class MainPlayer : MonoBehaviour {// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {}}脚本⽂件通过实现继承内置 MonoBehaviour类来完成与unity内部⼯作的连接。
你可以认为这个类是⼀种实现⽅案,这个⽅案创建了⼀个与GameObject相关的组件类型。
每次你将脚本组件与 GameObject联系起来,它就通过实现⽅案产⽣⼀个物体的新实例。
类的名字取⾃创建⽂件时提供的名称。
类名与⽂件名必须⼀致,以确保脚本组件能与 GameObject关联。
Update 函数是你⽤于处理 GameObject帧更新的地⽅;它应该包括移动,动作触发和⽤户输⼊相应,以及在 gameplay期间需要根据时间推移来解决的任何事件。
为保证 Update函数能够⼯作,你需要在所有游戏动作发⽣前构建变量、读取⾸选项以及和其他 GameObjects建⽴连接。
Start 函数将会在 gameplay开始前由 Unity调⽤,因此你需要在这⾥做⼀些初始化。
控制 GameObject在脚本与 GameObject相关联之前,脚本代码并不会被激活。
你可以通过拖动脚本 asset到层级⾯板的 GamObject或到已选中的GameObject的 Inspector上来产⽣关联。
unity考试知识点
![unity考试知识点](https://img.taocdn.com/s3/m/f022525cc381e53a580216fc700abb68a982ade4.png)
Unity考试知识点Unity是一款广泛用于游戏开发的跨平台开发引擎。
在学习和应用Unity时,了解其考试知识点对于提高开发者的技能和准备Unity认证考试都非常重要。
本文将介绍一些常见的Unity考试知识点,帮助读者更好地准备和应对考试。
一、Unity编辑器基础知识 1. Unity界面:了解Unity的主要界面元素,如场景视图、游戏视图、检视器等。
2. Unity项目:了解Unity项目的创建和管理,掌握资源的导入和使用。
二、游戏对象和组件1. 游戏对象:了解Unity中的游戏对象的概念,掌握创建、销毁和查找游戏对象的方法。
2. 组件:掌握常见组件的使用,如渲染器、碰撞器、刚体等。
了解如何添加、删除和修改组件。
三、场景和摄像机 1. 场景管理:了解场景的创建、保存和切换,掌握场景中游戏对象的操作。
2. 摄像机:了解摄像机的使用,包括摄像机的位置、旋转和视野等参数的调整。
四、脚本编程和事件 1. C#语言基础:了解C#编程语言的基本语法和常用数据类型。
2. Unity脚本编程:掌握Unity中的脚本编程,包括脚本的创建、附加到游戏对象和调用其他脚本等。
3. 事件系统:了解Unity中的事件系统,掌握常见事件的使用,如触发器、按钮点击等。
五、物理引擎和碰撞检测 1. 物理引擎:了解Unity内置的物理引擎,掌握物体的重力、力的施加和受力的计算等。
2. 碰撞检测:了解Unity中的碰撞检测系统,掌握碰撞器的使用和碰撞事件的处理。
六、动画和粒子效果 1. 动画系统:掌握Unity中的动画系统,了解动画剪辑的创建和使用。
2. 粒子效果:了解Unity中的粒子系统,掌握粒子的发射、形状、颜色等属性的调整。
七、音频和用户界面1. 音频管理:了解Unity中的音频管理,掌握音频的播放、暂停和音量调整等操作。
2. 用户界面:了解Unity的用户界面系统,包括UI元素的创建、布局和交互等。
以上是一些常见的Unity考试知识点,希望能对读者在学习和应用Unity时有所帮助。
unity脚本教程
![unity脚本教程](https://img.taocdn.com/s3/m/66482b6ff11dc281e53a580216fc700abb68529e.png)
unity脚本教程Unity是一款强大的游戏开发引擎,并且拥有易学易用的脚本编程接口。
本教程将带您了解如何使用Unity脚本来实现游戏中的各种功能。
首先,我们需要了解脚本是什么。
脚本是一段被编写的代码,用于给游戏对象指定行为。
在Unity中,脚本是使用C#编写的,因此您需要具备一定的编程知识。
如果您对C#不熟悉,建议先学习相关的C#教程。
在Unity中,脚本是指定给游戏对象的组件。
要创建一个新的脚本,您可以右键点击项目视图中的任何文件夹,选择Create -> C# Script。
接下来,您可以将这个脚本拖拽到场景中的游戏对象上,或者在代码中实例化并附加到对象上。
一旦您有了一个脚本,就可以开始编写代码了。
每个脚本都必须包含至少一个特殊函数:Start()函数和Update()函数。
Start()函数在游戏对象被创建时调用,而Update()函数则在每一帧更新时被调用。
您可以在这些函数中编写代码,实现游戏对象的行为。
例如,如果您想让一个游戏对象在场景中移动,您可以在Update()函数中编写代码,使其根据用户的输入移动。
首先,您需要获取用户的输入,可以使用Unity提供的Input类。
然后,根据用户输入的方向,您可以修改游戏对象的Transform 组件的position属性,从而改变其位置。
除了移动游戏对象,您还可以使用脚本实现许多其他功能,如碰撞检测、动画控制、触发事件等。
Unity提供了许多内置的组件和函数,用于实现这些功能。
例如,您可以使用Rigidbody组件来控制游戏对象的物理行为,使用Animator组件来控制游戏对象的动画,使用Collider组件来检测碰撞等。
当然,这只是Unity脚本的入门教程,还有许多其他更复杂的功能和概念需要掌握。
例如,您可能需要了解如何使用协程来处理异步操作,如何使用事件系统来处理游戏对象之间的通信,如何使用单例模式来管理全局状态等等。
要学习更多关于Unity脚本的知识,建议您查阅官方文档和相关的在线教程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Page 4
对象的创建、克隆与销毁
程序动态创建游戏对象 GameObject cube=GameObject.CreatePrimitive(PrimitiveType.Cube);//用 于创建基本体 cube.nae=“cube1”;//设定名字 Cube.renderer.material.color=Color.red; 程序动态克隆对象、销毁对象 GameObject obj=(GameObject)Instantiate(cube); Destroy(obj,1F); 动态创建出来的对象运行时在Hierarchy中可以看到 克隆游戏对象产生复制对象的效率高,比如游戏中产生大量的子 弹调用Instantiate来生成对象,Destroy(obj)是立即放到构造函数中,而是放到Start()方法中。 放到游戏对象中的脚本(实例化)可以在Inspector中修改属 性,get/set写法属性不被识别,直接public字段就能当属性用, 不写修饰符就是私有private。
Page 3
脚本入门2-MonoDevelop脚本编辑器介绍
Page 2
脚本入门2-MonoDevelop脚本编辑器介绍
项目工程注意分层设计。 _Scenes: 存放场景 _Scripts:存放脚本 Resources:资源包 Textures: 贴图 Materials: 材质(主要为.mat文件) Audios:声音 Models: 模型(存放FBX文件)
脚本入门2-MonoDevelop脚本编辑器介绍
Unity3D目前支持三种语言的脚本程序,包括C#、JavaScript、 Boo,在一个游戏中开发者可以使用一种或者同时 使用多种语 言来实现脚本的控制。
三种不同的语言其实效率是相当的,最后都会编译成Unity3D 内置的中间代码。目前国内用C#的占大多数。 在Project中右击,新建C#脚本,一般将所有脚本放到一个单 独的文件夹中。 直接将脚本文件拖到游戏对象上,运行时脚本就会应用。 脚本在Project中的显示名称不要加cs,类名要和cs名称一致, 所有类继承自MonoBehaviour。