【U3D入门小白教程——代码篇】之三:常见脚本函数

个人学习第三章节:常见脚本

1.Awake( )与Start()

Awake( )在游戏创建时调用,用于设置游戏初始化的参数

Start( )在脚本被调用,执行在所有Update( )之前,用于赋值变量

2.Update( )与FixedUpdate()

Update( )用于非刚体对象的运动,诸如定时器,检测输入等,Update受制于机器性能帧率

FixedUpdate()用于刚体对象运动,不受制于机器性能,有固定调用间隔。

3.Vector3.Dot( )与Vector3.Cross( )

Vector3.Dot( )用于表示两个向量的乘积,乘积为-1则为反方向,为0则两个向量垂直

Vector3.Cross( )用于计算两个向量交叉乘积,乘积结果为垂直于两个向量的新的向量

4.transform.Translate( )与transform.Rotate( )

transform.Translate( )用于指定向量的位移

transform.Rotate( )用于选定向量为旋转中心(视线为向量方向)的逆时针旋转

这里z轴正向为transform.forward 负向为transform.back

y轴正向为transform.up 负向为transform.down

x轴正向为transform.left 负向为transform.right

5.transform.LookAt(target)

transform.LookAt(target)用于指定物体z轴始终指向target,用于camera类似于第一人称视角

6.Math.Lerp( )

举例:float result = Mathf.Lerp (3f, 5f, 0.5f); 得到结果为4

Vector3 from = new Vector3 (1f, 2f, 3f);

Vector3 to = new Vector3 (5f, 6f, 7f);

Vector3 result = Vector3.Lerp (from, to, 0.75f); 得到结果为(4,5,6)

补充SmoothDamp( currentPosition ,targetPosition ,ref Velocity ,smoothTime )

currentPosition:我们正在的位置

targetPosition:目标移动位置

ref Velocity:不用管,Vector3 Velocity = Vector3.zero;

smoothTime:移动所要时间 注意这里smoothTime = 3f 并不为 3s(感觉大概是)

用于随着时间的推移,逐渐将向量改变为所需的目标。

7.Destory( )

用于gameobject或者compoent的清除

Destory(target,3f) 目标将在3s后摧毁

8.Input.GetButton( )与Input.GetKey( )

当按下按键,GetButtonDown( )仅按下触发一次为True,其他为False

GetButtonUp( )仅谈起触发一次为True,其他为False

GetButton( )只要按键按下未弹起,即为True

GetKey( ) GetKeyDown( ) GetKeyUp( )用法一样

Input.GetKey( )设定按键在Unity窗口Edit/Project Settings/Input中

9.GetAxis( )

GetAxis( )类似于GetKey( ),设定按键在Unity窗口Edit/Project Settings/Input中

主要用法GetAxis(“Vertical”),GetAxis(“Horizontal”)

按下方向键正向,GetAxis( )数值从0到1增加,然后松开返回值为0

在Input设置中修改Gravity大小,决定了换向时候变化的速度,数值越大速度越快

修改Sensitivity大小,决定了按键从数值变化的快慢,数值越大速度越快

GetAxisRaw( )该值的范围为-1 ... 1,当GetAxis处理物体移动有明显跳帧问题,则使用此方法平滑移动

10.OnMouseDown( )

OnMouseDown( )用于鼠标点击事件

其他鼠标事件还有

OnMouseEnter( )当鼠标移动到对象上触发

OnMouseOver( )当鼠标停在对象上触发

OnMouseExit( )当鼠标移动到对象后离开触发

OnMouseDrag( )当鼠标到对象上按住触发

11.GetComponent<>( )

可以用这个方法获取其他游戏部件,或者是其他的脚本。

当获取其他组件元素时候,建议利用方法获取组件,然后target.getCompent<BoxCollider>( )

还有一种获取游戏部件方式

利用tag标签:GameObject.FindGameObjectsWithTag(“targetName”)

12.Time.deltaTime( )

Time.deltaTime( )返回值为调用Update( )方法的间隔时间,即为帧间隔时间,所以在特定情况下,

乘以Time.deltaTime( )可以实现按照每一帧更改的目的,达到画面的连贯性。

13.Instantiate( )

Instantiate(gameObject,target.transform.position,target.transform.rotation)

用于实例化对象在指定位置角度

Rigidbody rb = Instantiate(gameObject,target.transform.position,target.transform.rotation) as Rigidbody;

这样可以对实例化后的对象进行操作,比如增加受力。rb.AddForce(Vector3)

14.Invoke(“函数名称”,time)

用于等待time后进行函数调用

15.InvokeReapting( )

InvokeReapting(“函数名称”,time,durTime)

Time为调用延迟时间

durTime为重复调用间隔时间

想要结束重复,调用方法CancelInvote(“函数名称”)

16.yield return new WaitForSenconds(3f)

使用这个等待方法的函数需要加上IEnumerator修饰符

在调用时利用StartCoroutine(函数名称)启动

17.delegate void Function();

Function() function;

用于方法的叠加调用。
---------------------
作者:唐三十胖子
来源:CSDN
原文:https://blog.csdn.net/iceSony/article/details/77890260
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/hj558558/p/10080375.html

时间: 2024-10-28 16:42:30

【U3D入门小白教程——代码篇】之三:常见脚本函数的相关文章

Provisioning Services 7.8 入门系列教程14篇全部完成了.....

经过近期一段时间的努力,Provisioning Services 7.8 入门系列教程14篇全部完成了-- Provisioning Services 7.8 入门系列教程之十四 UEFI支持和BOOTPTAB 编辑器 2016-05-14 Provisioning Services 7.8 入门系列教程之十三 使用 Boot Device Management(BDM)2016-05-13 Provisioning Services 7.8 入门系列教程之十二 实现高可用性 2016-05-

python入门基础教程05 Python工具常见错误

Python-Shell反馈常见错误 初学者通常会使用Python-Shell来学习Python基础及语法知识,在使用Python-Shell 时会遇到这样或者那样的错误,有的是语法错误,有的是键入的函数或者变量名字拼写错误,现就初学者常出现的错误做一个总结. 变量.函数未定义 下面我们简单总结一下在使用Python-Shell时常见的错误提示. >>>len = 12>>>le Traceback (most recent call last):   File &qu

Java Web开发入门之Servlet代码篇(三)

1. ServletConfig获取参数&测试实例化/初始化/销毁方法 public class Servlet01_ServletConfig extends HttpServlet { public Servlet01_ServletConfig() { System.out.println("实例化~~~~~~~~~~"); } @Override public void init() throws ServletException { System.out.printl

微信公众号开发入门教程第一篇

关键字:微信公众平台开发作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/JS等基础. 我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部. 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用 启用微信公众平台开发模式 体验常用接收消息及发送消息类型 了解数据收发原理及消息格式 第一章 申请服务器资源 创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为服务器资源,并且申请PH

Linux入门学习教程:虚拟机体验之KVM篇

在上一篇中,我展示了虚拟机软件QEMU的使用.效果及其性能,同时也分析了不同用户对虚拟机的不同追求.但是不管是桌面用户还是企业级用户,对虚拟机 软件的追求有一点是共同的,那就是性能.QEMU是一个强大的虚拟机软件,它可以完全以软件的形式模拟出一台完整的电脑所需的所有硬件,甚至是模拟出不同 架构的硬件,在这些虚拟的硬件之上,可以安装完整的操作系统.QEMU的运行模式如下图: 很显然,这种完全以软件模拟硬件的形式虽然功能强大,但是性能难以满足用户的需要.模拟出的硬件的性能和物理硬件的性能相比,必然会

【Web自动化测试——代码篇四】常用方法——常见元素操作

浏览器这个大框架我们都能控制,区区页面小元素又能奈我们何!!!之前的[Web自动化测试--代码篇二]条条大路找元素 已经讲述了许多获取元素的方法,在此基础上我们来认识几个元素最常见的相关操作?(ˉ﹃ˉ?)   Java Python Ruby 输入内容 sendKeys(*value) send_keys(*value) send_keys(*value) 单击元素 click() click() click 清除文本 clear() clear() clear 提交表单 submit() su

Provisioning Services 7.8 入门系列教程之三 安装并配置 Provisioning Services

续Provisioning Services 7.8 入门系列教程之二 基础环境安装续 Provisioning Services 解决方案 Provisioning Services 流技术推送技术允许从单个共享磁盘映像实时地置备或重新置备计算机. 在这一过程中,管理员完全无需管理和修补各个系统, 所有映像管理均在主映像上完成. 每个系统的本地硬盘可以用来实现运行时数据缓存,在某些情况下,还可以完全从系统中移除,从而降低电力消耗.系统故障率和安全风险.Provisioning Services

JavaWeb快速入门Session&amp;Cookie代码思路篇(七)

Cookie练习 简介 尝试了n种分享代码,最终没有找到好办法.我觉得贴代码,很难看下去.还不如写思路,今后代码篇改成思路篇 Session代码练习 1. 购物车思路 1. ListBookServlet类 1.1 显示该网站所有商品,每个商品加上购买链接(BuyServlet) 用Map集合存储Book对象 map.put("1", new Book("1","JavaWeb开发","老张","一本好书"

MVC5+EF6 入门完整教程九

前一阵子临时有事,这篇文章发布间隔比较长,我们先回顾下之前的内容,每篇文章用一句话总结重点. 文章一 MVC核心概念简介,一个基本MVC项目结构 文章二 通过开发一个最基本的登录界面,介绍了如何从Controller中获取表单数据 文章三 EF的整个开发过程 文章四 EF基本的CRUD和常用的HtmlHelper 文章五 使用布局页(模板页)改造UI 文章六 分部视图(Partial View) 文章七 排序过滤分页 文章八 不丢失数据进行数据库结构升级 以上如果有不清楚的可以再回去看一下. 文