第3章 Unity3D引擎的脚本编程-3.1C#脚本语言基础_第1页
第3章 Unity3D引擎的脚本编程-3.1C#脚本语言基础_第2页
第3章 Unity3D引擎的脚本编程-3.1C#脚本语言基础_第3页
第3章 Unity3D引擎的脚本编程-3.1C#脚本语言基础_第4页
第3章 Unity3D引擎的脚本编程-3.1C#脚本语言基础_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.第3章

C#脚本编程

3.1C#脚本语言基础

.目录.6.

Input输入

.2.第一个脚本游戏

.3.

MonoBehaviour类

.4.

GameObject类

.5.Transform类

.1

.脚本编辑器

1.

脚本编辑器

可登录VisualStudio的官网,选择VisualStudio2019Community版进行下载、安装。VisualStudio安装完成后,在Unity编辑器的菜单栏中选择“Edit”>“Preferences”,选择“ExternalTools”,在“ExternalScriptEditor”下拉列表框中将脚本编辑器设为VisualStudio2019(Community),如图所示。这样,在Unity中双击脚本文件,即可直接打开VisualStudio2019软件,编写脚本。2.

第一个脚本游戏

在Unity中,开发者编写的每一个脚本都被视为一个自定义组件(Component),可通过AddComponent的方式将脚本添加到游戏对象中。

用Unity完成第一个脚本程序:

(1)启动Unity,新建项目,在Hierarchy面板中创建一个新的游戏对象Cube;(2)在Project面板中右键单击,在弹出的快捷菜单中选择“Create”>“Folder”,创建一个Scripts文件夹来管理项目中创建的脚本;(3)Project面板中右键单击,弹出的快捷菜单中选择“Create”>“C#Script”,在Assets/Scripts文件夹下创建一个新的脚本,默认名称为NewBehaviourScript.cs,将其重命名为Pratise1.cs;(4)双击Pratice1.cs脚本文件,打开VisualStudio编译器,如图所示;(5)在Start()函数中添加一行语句,然后保存脚本;

Debug.Log("TheFisrtProgram");(6)回到Unity编辑器,将Pratise1.cs脚本拖曳到Hierarchy面板的Cube对象上,也可直接将其拖曳到Cube对象的Inspector面板中;(7)单击运行按钮,可以看到Console面板中出现输出信息3.

MonoBehaviour类

MonoBehaviour类是Unity中所有脚本的基类,所有脚本类均需要从它直接或间接继承,定义了基本的脚本行为,还定义了对各种特定事件(如模型碰撞、鼠标移动)的响应方法。

几个常用的必然事件函数:

Awake():脚本唤醒函数,脚本实例在创建时立刻调用,早于Start()调用;

Start():只在脚本实例被启用时调用,位于Awake()函数之后,在第一次Update()函数执行前调用,通常用于游戏对象的初始化;

Update():每帧刷新时调用一次,用于更新游戏场景和状态,大部分游戏代码写在此函数中;若游戏以每秒60帧的速度运行,则Update()将被调用60次;

FixedUpdate():固定更新函数,每个固定物理时间间隔调用一次,用于对象物理状态的更新;

LateUpdate():延迟更新函数,每帧调用一次,在Update()之后,用于调整脚本执行顺序,与相机有关的更新一般放在此函数中。4.GameObject类

GameObject类是Unity场景里面所有实体的基类。Unity中的所有实体都是游戏对象,如Unity自带的球体、正方体等各种物体以及场景中使用的模型等。常用属性有:

transform:附属于此游戏对象上的Transform组件。;

tag:游戏对象的标签;常用的静态函数有:

GameObject.CreatePrimitive():创建一个带有基本网格渲染器和相应碰撞器的游戏对象;

GameObject.Find():查找并返回指定名称的游戏对象,若此游戏对象没有被找到,则返回空。;

GameObject.FindWithTag():查找一个用tag做标识的活动的游戏对象,如果没有找到则为空。 GameObject.Instantiate():克隆游戏对象并返回克隆对象。常用函数: gameObject.GetComponent():获取指定的组件,如果没有则为空 gamObject.AddComponent():添加一个组件到游戏对象 gameObject.SetActive():激活或停用此游戏对象5.Transform类

在Unity场景中的每一个游戏对象都有Transform组件,用于储存并操控物体的位置Position、旋转Rotation和缩放Scale。获取游戏对象的位置:

transform.position:获得物体在世界坐标系中的三维坐标值,保存在对象Vector3(x,y,z)中。

Vector3.right:表示X轴正方向,相当于Vector3(1,0,0);

Vector3.up:表示Y轴正方向,相当于Vector(0,1,0);

Vector.forward:表示Z轴正方向,相当于Vector3(0,0,1)。移动游戏对象:

transform.Translate(Vector3offset):将游戏对象按指定方向和距离移动。

相当于transform.position=transform.position+offset。

transform.Translate(Vector3,Space):Space代表坐标系,其中可使用Space.Self表示自身体系、Space.World表示世界体系。若Space省略不写,则是指Space.Self。缩放游戏对象:

Transform.localScale:自身缩放旋转游戏对象

transform.Rotate():游戏对象按指定的欧拉角旋转、自转;

transform.RotateAround(point,axis,angle):游戏对象围绕某个点旋转。6. Input输入类

Input是输入系统的接口,使用Input类能够读取输入管理器设置的按键,以及访问移动设备的多点触控或加速感应数据。获取鼠标操作信息的常用函数:

Input.GetMouseButton():获取鼠标按键状态,返回true或false;当指定的鼠标按键被按下时返回true,其中0对应鼠标左键,1对应鼠标右键,2对应鼠标中键。。

Input.GetMouseButtonDown():获取鼠标按键按下状态,当用户按下指定鼠标按键时的那一帧返回true。

Input.GetMouseButtonUp():获取鼠标按键弹起状态,当用户释放指定鼠标按键时的那一帧返回true。获取键盘按键信息的常用函数:

Input.GetKey():获取键盘按键状态,当指定的键盘按键被用户按住时返回true。

Input.GetKeyDown():获取键盘按键按下信息,当用户按下指定名称的按键时的那一帧返回true。

Input

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论