unity3d入门教程三

unity3d入门教程三

  • 8.1游戏脚本
  • 8.2脚本的使用
  • 8.3认识脚本组件
  • 8.4帧率
  • 9.1游戏脚本
  • 9.2获取节点和组件
  • 9.3MonoBehaviour
  • 9.4父节点与子节点
  • 9.5组件的属性
  • 9.6脚本的单步调试

8.1游戏脚本

通过程序控制对象属性(如运动,修改transform的位置属性)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.2脚本的使用

在这里插入图片描述

1 新建脚本 Hello.cs ,编辑代码 ,保存一下
在里面写入一个简单的输入输出代码,并且保存
在这里插入图片描述

2 把脚本挂载到游戏对象
Add Component | Scripts | …

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.3认识脚本组件

在这里插入图片描述

要注意将VS2019与unity进行关联
https://www.jb51.net/article/192667.htm

双击时才会自动打开2019
在这里插入图片描述
在这里插入图片描述

Update()每帧调用,每秒大概调用几十次
在这里插入图片描述

Debug.Log("这是我的第一个游戏");
Debug.Log("In Update() ... " + Time.deltaTime);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

游戏启动时,有场景,有对象,肯定先创建游戏对象,对象下的组件创建,如脚本组件创建,脚本中类的实例化但没有最先执行,接着执行start,再按照帧率时间调用update方法更新游戏显示。

在这里插入图片描述

8.4帧率

在这里插入图片描述

Unity更新频率是不固定的
在这里插入图片描述
在这里插入图片描述

Debug.Log("这是我的第一个游戏");
Debug.Log("In Update() ... " + Time.deltaTime);

在这里插入图片描述

每次间隔是不相等的,unity是尽快进行刷新游戏,无法以固定帧率运行,但可以使其尽量在某个帧率运行

显式设定帧率:
Application.targetFrameRate = 60;
要求 Unity 引擎尽量以此帧率运行 ,但实际帧率还是会有偏差
在这里插入图片描述

还是设置一下,使其消耗资源小一些
在这里插入图片描述

this.transform.Translate(0, 0.05f , 0); (x,y,z)f表示一个单位
其中,
this.transform 即当前游戏对象的 transform组件
Translate() 调整相对位移
在这里插入图片描述
在这里插入图片描述

此时运行小飞机就动了
在这里插入图片描述

float step = 0.8f * Time.deltaTime;(慢速)float step = 1.2f * Time.deltaTime;(快速)

但是运动速度不够均匀,优化如下
此时无论间隔大小都可以匀速显示
在这里插入图片描述
在这里插入图片描述

9.1游戏脚本

在这里插入图片描述

https://unity.cn/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

此文档是辅助手段

9.2获取节点和组件

使用API获取游戏对象和组件

在脚本里操作游戏对象
在这里插入图片描述

This是当前myjet组件,此组件挂载到当前游戏对象gameObject上

this.gameObject就是游戏对象,可以获取其下的组件
在这里插入图片描述

例如,获取 Sprite Renderer 组件

SpriteRenderer renderer = this.GetComponent<SpriteRenderer>();

也可以写作:

this.gameObject.GetComponent<…>( ) ,Unity内部作了封装

在这里插入图片描述

void Start(){//SpriteRenderer renderer = this.gameObject.GetComponent<SpriteRenderer>();//将上方简化为下也是可以的,两者相等SpriteRenderer renderer = this.GetComponent<SpriteRenderer>();//在当前游戏对象下寻找SpriteRenderer组件renderer.flipY = true;
}

演示:添加一个脚本,将小飞机图片翻转。。

在这里插入图片描述
在这里插入图片描述

按名字来获取节点

GameObject obj = GameObject.Find("/path/of/target");

再获取它下面的组件

SpriteRenderer comp = obj.GetComponent<SpriteRenderer>();

在这里插入图片描述

SpriteRenderer renderer = this.gameObject.GetComponent<SpriteRenderer>();将上方简化为下也是可以的,两者相等//SpriteRenderer renderer = this.GetComponent<SpriteRenderer>();在当前游戏对象下寻找SpriteRenderer组件//renderer.flipY = true;//获取其他节点GameObject obj = GameObject.Find("/Other/22");SpriteRenderer renderer = obj.GetComponent<SpriteRenderer>();   //获取该节点的组件renderer.flipY = true;  //进行上下翻转

在这里插入图片描述
在这里插入图片描述

9.3MonoBehaviour

在这里插入图片描述
在这里插入图片描述

9.4父节点与子节点

如何获取父节点和子节点使用代码
在这里插入图片描述
在这里插入图片描述

示例1 :获取‘小飞机’的父节点

GameObject  parent = this.transform.parent.gameObject;

在这里插入图片描述

//获取父节点GameObject parent = this.transform.parent.gameObject;Debug.Log("小飞机的父节点是:" + parent.name);

在这里插入图片描述
在这里插入图片描述

可以对transfom进行枚举操作得到其节点下的所有子节点
在这里插入图片描述

  void Start(){//遍历当前对象transform下所有的子节点foreach (Transform child in transform){Debug.Log("子节点:" + child.name);//child.position += Vector3.up * 10.0f;}}

在这里插入图片描述
在这里插入图片描述

 void Start(){遍历当前对象transform下所有的子节点//foreach (Transform child in transform)//{//    Debug.Log("子节点:" + child.name);//    //child.position += Vector3.up * 10.0f;//}//得到小飞机节点,要转移的目标节点GameObject obg1 = GameObject.Find("飞机");GameObject target = GameObject.Find("物体");//将目标节点作为小飞机的子节点obg1.transform.SetParent(target.transform);
}

保存运行代码时

在这里插入图片描述

在这里插入图片描述

如何将其挂载到根节点下面,

 void Start(){遍历当前对象transform下所有的子节点//foreach (Transform child in transform)//{//    Debug.Log("子节点:" + child.name);//    //child.position += Vector3.up * 10.0f;//}//得到小飞机节点,要转移的目标节点GameObject obg1 = GameObject.Find("飞机");GameObject target = GameObject.Find("物体");将目标节点作为小飞机的子节点//obg1.transform.SetParent(target.transform);//挂载到场景根节点下面obg1.transform.SetParent(null);
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

运行起来的层级窗口transform属性等数据是实时的,而未运行时显示的是未运行的状态

   this.transform.position = new Vector3(1.5f, 1.5f, 0);//移动当前节点飞机的位置,

9.5组件的属性

在这里插入图片描述

演示:给 MyJet.cs 添加几个属性
public int number = 10;
public string helloMessage = “Hi”;

在这里插入图片描述

在这里插入图片描述

之前的飞机运行速度等,若直接将属性定义在start()函数中,是写死的

若将其显示在属性器中,能在属性窗口中更改就方便了

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

9.6脚本的单步调试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

随便在 Start() 方法里添加几行代码 ,用于演示

using JetBrains.Annotations;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MyJet : MonoBehaviour
{public float speed = 1.2f;// Start is called before the first frame updatevoid Start(){Vector3 pos = transform.localScale;Vector3 ratation = transform.localEulerAngles;Vector3 scale = transform.localScale;transform.position = new Vector3(0, 0, 0);}// Update is called once per framevoid Update(){transform.Translate(0, speed * Time.deltaTime, 0);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/424449.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloudAlibaba:Seata

1. 面试题 2.1 你简历上写用微服务boot/cloud做过项目&#xff0c;你不可能只有一个数据库吧&#xff1f;谈谈多个数据库之间如何处理分布式事务&#xff1f; 2.2 阿里巴巴的Seata-AT模式如何做到对业务的无侵入&#xff1f; 在一阶段&#xff0c;Seata 会拦截“业务 SQL”&a…

逆向学习系列(三)adb的使用

由于是记录学习&#xff0c;我就用结合自己的理解&#xff0c;用最通俗的语言进行讲解。 adb是android debug bridge的简写&#xff0c;其作用就是将电脑和手机相连接&#xff0c;用电脑控制手机。 一、adb哪里来 我使用的adb一般都是安装模拟器的时候&#xff0c;模拟器自带…

MySQL基础——DQL

DQL&#xff08;Data Query Language&#xff0c;数据查询语言&#xff09;是SQL中的一个子集&#xff0c;主要用于查询数据库中的数据。DQL的核心语句是 SELECT&#xff0c;它用于从一个或多个表中提取数据&#xff0c;并能够通过各种条件进行过滤、排序和聚合操作。下面是DQL…

【学习笔记】手写Tomcat 二

目录 响应静态资源 HTTP协议请求格式 1. 解析请求信息 创建解析请求类 HttpRequest 2. 创建静态资源目录 webs 3. 封装响应信息 创建静态资源处理器 StaticResourceHandler 创建响应类 HttpResponse 然后就可以调用响应类了 测试 静态资源的路径说明 作业 1. 绘制…

JNI 详细介绍

一 介绍 java调⽤c&#xff0c;c代码可以通过JNIEnv执行java代码。 安卓NDK 已经对JNI环境进行了集成&#xff0c;我们可以通过android studio来快速搭建一个项目。 二 项目搭建 打开android studio 创建工程&#xff0c;创建工程选择模板Native C 三 模板格式介绍 生成的…

非关系型数据库Redis

文章目录 一&#xff0c;关系型数据库和非关系型数据可区别1.关系型数据库2.非关系型数据库3.区别3.1存储方式3.2扩展方式3.2事务性的支持 二&#xff0c;非关系型数据为什么产生三&#xff0c;Redis1.Redis是什么2.Redis优点3.Redis适用范围4. Redis 快的原因4.1 基于内存运行…

直播标准权威发布,阿里云RTS获首批卓越级评估认证

近期举办的2024“可信云大会”上&#xff0c;中国信通院正式发布了2024年上半年音视频领域最新评估结果。阿里云超低延时直播&#xff0c;以首批卓越级&#xff0c;通过中国信通院超低延时直播性能及服务质量分级测试。 标准发布&#xff0c;权威量化直播体验质量 从直播元年发…

神经网络通俗理解学习笔记(0) numpy、matplotlib

Numpy numpynumpy 基本介绍Ndarray对象及其创建Numpy数组的基础索引numpy数组的合并与拆分&#xff08;重要&#xff09;numpy数组的矩阵运算Numpy数组的统计运算numpy中的arg运算numpy中的神奇索引和比较 Matplotlib numpy numpy 基本介绍 numpy 大多数机器学习库都用了这个…

【Echarts】使用多横坐标轴展示近十五天天气预报

现在手机都有天气app,使用echarts展示十五天天气预报的需要你遇到过这样离大谱的需求吗&#xff1f;如果没有或许你能从中找到些许思路。 效果 看效果是不是有点那么个意思,开局一张图,代码全靠ctrl c。不多说上代码。 vue模板引擎代码 <template><div ref"xA…

从头开始学MyBatis—02基于xml和注解分别实现的增删改查

首先介绍此次使用的数据库结构&#xff0c;然后引出注意事项。 通过基于xml和基于注解的方式分别实现了增删改查&#xff0c;还有获取参数值、返回值的不同类型对比&#xff0c;帮助大家一次性掌握两种代码编写能力。 目录 数据库 数据库表 实体类 对应的实体类如下&#x…

【LeetCode每日一题】——912.排序数组

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 优先队列 二【题目难度】 中等 三【题目编号】 912.排序数组 四【题目描述】 给你一个整数…

H5 three.js 实现六年级观察物体

o(&#xffe3;▽&#xffe3;)ブ 我又带着新的demo来啦~ 预览 功能点 立方体的阴影 立方体的添加 位置记录 最大限制 三视图展示 立方体的移除 答题模式 随机出题 题库出题 源码 注释算是比较全了&#xff0c;可能部分会有点绕&#xff0c;还能够再优化一下~ <!DOCTYPE …

【第35章】Spring Cloud之Seata-Server快速入门

文章目录 前言一、准备1. 架构图2. 工作机制3. Seata术语4. 事务模式4.1 Seata AT 模式(依赖数据库)4.2 Seata TCC 模式(不依赖数据库)4.3 Seata Saga 模式(支持长事务)4.4 Seata XA 模式(支持XA 协议) 二、安装1. 下载2. 解压3. 重要属性4. 修改配置4.1 配置中心4.2 注册中心4…

C语言 13 指针

指针可以说是整个 C 语言中最难以理解的部分了。 什么是指针 还记得在前面谈到的通过函数交换两个变量的值吗&#xff1f; #include <stdio.h>void swap(int, int);int main() {int a 10, b 20;swap(a, b);printf("a %d, b %d", a, b); }void swap(int …

循环神经网络RNN+长短期记忆网络LSTM 学习记录

循环神经网络&#xff08;RNN) RNN的的基础单元是一个循环单元&#xff0c;前部序列的信息经处理后&#xff0c;作为输入信息传递到后部序列 x为输入向量&#xff0c;y为输出向量&#xff0c;a为上一隐藏层的a与x通过激活函数得到的值&#xff0c;简言之&#xff0c;每一层神…

华为 HCIP-Datacom H12-821 题库 (23)

&#x1f423;博客最下方微信公众号回复题库,领取题库和教学资源 &#x1f424;诚挚欢迎IT交流有兴趣的公众号回复交流群 &#x1f998;公众号会持续更新网络小知识&#x1f63c; 1.以下关于 VRRP 基本概念的描述&#xff0c;错误的是哪些选项&#xff1f; A、一个虚拟路由器…

S32K3 工具篇6:如何将RTD EB工程导入到S32DS

S32K3 工具篇6&#xff1a;如何将RTD EB工程导入到S32DS 1. MCAL_Plugins->Link Source Resource Filters2. Includes3. Preprocessor4. Linker5. optimization6. main.c 这个主题实际上&#xff0c;之前已经有多人写过&#xff0c;并且写的很好&#xff0c;只是实际操作中&…

qt-creator-10.0.2之后版本的jom.exe编译速度慢下来了

1、Qt的IDE一直在升级&#xff0c;qt-creator的新版本下载地址 https://download.qt.io/official_releases/qtcreator/ 2、本人一直用的是qt-creator-10.0.2版本&#xff0c;官网历史仓库可以下载安装包qt-creator-opensource-windows-x86_64-10.0.2.exe https://download.qt…

URP 线性空间 ui资源制作规范

前言&#xff1a; 关于颜色空间的介绍&#xff0c;可参阅 unity 文档 Color space URP实现了基于物理的渲染&#xff0c;为了保证光照计算的准确&#xff0c;需要使用线性空间&#xff1b; 使用线性空间会带来一个问题&#xff0c;ui资源在unity中进行透明度混合时&#xff…

COMP 6714-Info Retrieval and Web Search笔记week1

哭了哭了&#xff0c;这周唯一能听懂的就这门 目录 IR&#xff08;Information Retrieval)是什么&#xff1f;IR的基本假设Unstructured (text) vs. structuredDocuments vs. Database Records比较文本&#xff08;Comparing Text&#xff09;IR的范围(Dimensions of IR)IR的任…