6. unity之脚本
创始人
2024-05-29 03:51:51
0

1. 说明

当整个游戏运行起来之后,我们无法再借助鼠标来控制物体,此时可以使用脚本来更改物体的各种姿态,驱动游戏的整体运动逻辑。

2. 脚本添加

首先在Assets目录中,新创建一个Scripts文件夹,在该文件内右键鼠标选择创建脚本选项,即可创建一个脚本文件,可命名为SampleLogic,如下图:
在这里插入图片描述
然后,鼠标双击创建的脚本文件,即可使用visual studio打开文件,在其中进行代码编辑,简单加入一行代码:
在这里插入图片描述
最后,需要将这个脚本文件挂载到物体模型上,也就是当成一个组件添加到物体本身,相当于给这个脚本一个寄宿的载体。选择一个物体,在其右侧属性窗口的最下侧,直接将脚本拖放过去,如下图:
在这里插入图片描述
拖放成功后,会发现在其属性组件中,会多一个Script组件,当然,也可以使用Add Component为物体添加脚本文件,如下图:
在这里插入图片描述
点击Scene窗口上方的运行按钮后,即可运行游戏,同时脚本也会被运行,再次点击此按钮,会结束运行,如下图:
C#脚本文件名必须和类名保持一致,否则无法挂载到物体上,若要修改类名,需要在Visual Studio中对类名进行修改。
在这里插入图片描述

3. 脚本中获取当前物体

若想通过脚本挂载方式控制当前物体的运动,那么需要在脚本中先获取到这个物体,然后再写代码对这个物体的相关属性进行设置,可以使用gameObject来获取,详见代码注释:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SampleLogic : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Debug.Log("** 开始测试.... **");GameObject obj = this.gameObject;//获取当前物体本身(this代表当前脚本组件)string name = this.gameObject.name;//获取当前物体的名称Debug.Log("当前物体名称为:" + name);Transform tr = this.gameObject.transform;//获取当前物体的transform组件Vector3 vec = tr.position;//获取当前物体的坐标float posX = tr.position.x;//获取当前物体的x坐标值float posY = tr.position.y;//获取当前物体的y坐标值float posZ = tr.position.z;//获取当前物体的z坐标值Debug.Log("物体当前坐标为:" + vec + " " + "X:" + posX + "Y:" + posY + "Z:" + posZ);}// Update is called once per framevoid Update(){}
}

4. 物体坐标

transform.position --> 世界坐标
transform.localPosition --> 本地坐标***(一般使用这个)***,localPosition的值就是在属性窗口中设置的值
一般获取物体的坐标有两种方式:
①:this.gameObject.transform.position
②:this.transform.position(简化版)
对物体的坐标进行设置:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SampleLogic : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){this.transform.position = new Vector3(1.0f, 1.5f, 1.0f);}// Update is called once per framevoid Update(){}
}

5. 脚本解释

从上面的代码中可以看到,一个脚本包含两个基本的函数,一个是***start()函数,一个是update()***函数
start():游戏运行起来后,此函数只执行一次,就是游戏刚启动时被执行
update():游戏运行后,每更新一下画面,该函数就会被执行一次。可以为unity设置帧率,让其以一定的速率更新画面

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SampleLogic : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Application.targetFrameRate = 60;//设定帧更新速率}// Update is called once per framevoid Update(){}
}

持续更新中,请大家多多关注…

相关内容

热门资讯

通用导游词 通用导游词  作为导游怎么能够忽视导游词的作用呢?下面是由应届毕业生小编为大家带来的关于通用导游词,...
杭州西湖导游词 杭州西湖导游词500字范文  杭州西湖的导游词怎么写好呢?下面是由应届毕业生小编为大家带来的关于杭州...
平遥古城导游词 平遥古城导游词平遥古城,历史悠久。据载:西周时期周宣工为抵御北方游牧民族的侵扰,曾派兵北伐萨犹,并修...
云南民族村的导游词 云南民族村的导游词  作为一名乐于为游客排忧解难的导游,有必要进行细致的导游词准备工作,导游词是讲解...
京北第一草原的导游词 京北第一草原的导游词  导读:京北第一草原是距首都北京最近的天然草原,故名“京北第一草原”,因其美丽...
秦皇岛联峰山导游词 秦皇岛联峰山导游词3篇  作为一位杰出的导游,通常会被要求编写导游词,导游词具有极强的实用性,涉及的...
车溪民俗导游词 车溪民俗导游词4篇  作为一名优秀的导游,时常需要编写导游词,导游词由引言、主体和结语三部分构成。那...
石宝寨导游词 石宝寨导游词范文  坐落在重庆市忠县长江北岸,西距县城40公里,东距万县52公里。此处临江有一俯高十...
长江三峡大瀑布的导游词 长江三峡大瀑布的导游词  关于三峡大瀑布导游词篇一  大家好,一路辛苦了,欢迎来到水电之都——宜昌,...
汉中武侯祠导游词 汉中武侯祠导游词  作为一位兢兢业业的旅游从业人员,编写导游词是必不可少的,一篇完整的导游词,其结构...
泰州国清寺导游词 泰州国清寺导游词(精选6篇)  作为一无名无私奉献的导游,有必要进行细致的导游词准备工作,导游词的主...
天津独乐寺导游词参考 天津独乐寺导游词参考  独乐寺位于蓟县城武定北侧,它始建于天宝十一年,辽代重建。关于独乐寺的得名,这...
清远英西峰林走廊导游词 清远英西峰林走廊导游词  英西峰林走廊位于英德市区西南60多公里的九龙、明迳、岩背三镇一带,这里密集...
家乡南京导游词-导游词 家乡南京导游词-导游词范文  作为一名尽职尽责的导游,就不得不需要编写导游词,导游词一般是根据实际的...
古漪园的导游词 古漪园的导游词范文  各位游客,大家好,欢迎大家来到古漪园参观,我是金凤旅游公司的66号导游,我叫刘...
颐和园景点导游词 颐和园景点导游词(精选6篇)  作为一位杰出的导游,时常需要编写导游词,导游词是我们引导游览时使用的...
天水南郭寺导游词 天水南郭寺导游词  南郭寺位于甘肃天水市秦州区南两公里处龙王沟东侧的慧音山坳,被誉为“天水第一名刹”...
山东崂山东麓华严寺导游词 山东崂山东麓华严寺导游词  作为一位兢兢业业的旅游从业人员,通常需要准备好一份导游词,导游词具有形象...
西安古城墙简单导游词 西安古城墙简单导游词  西安明城墙位于陕西省西安市中心区,墙高12米,顶宽12—14米,底宽15—1...
介绍贵州百里杜鹃的导游词 关于介绍贵州百里杜鹃的导游词范文(精选7篇)  作为一名专门为游客提供帮助的导游,通常需要用到导游词...