IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> unity滚球游戏学习笔记 -> 正文阅读

[游戏开发]unity滚球游戏学习笔记

Unity基本知识

创建工程

什么是工程

工程目录介绍

布局介绍

语言切换(初学者可以使用中文,建议慢慢喜欢英文界面)

创建脚本

如何创建C#脚本(Unity支持哪些脚本)

怎么打开脚本

设置VS的字体(工具 -> 选项 -> 字体和颜色)

JetBrains Mono

https://www.jetbrains.com/zh-cn/lp/mono/

代码不提示的问题

Edit -> Preference -> External Tools

创建场景

场景介绍

怎么创建

五个窗口面板(视图、窗口)

Project:工程面板,存放工程的各种资源。包括:声音资源、模型资源、场景文件、材质、脚本等。

Hierarchy:层级面板,展示当前打开的场景里面有哪些东西。(里面的东西称为游戏物体)

Inspector:检视面板(或属性面板),查看一个游戏物体由哪些组件组成。

场景 -> 多个游戏物体 -> 多个组件

Scene:场景面板,显示当前场景的样子

鼠标中键:平移视角

鼠标右键:旋转视角(环顾四周),围绕自身旋转

Alt+鼠标左键:渲染视角,围绕当前视角前方位置

Game:游戏面板,场景运行的时候的样子

场景、游戏物体、组件

对应的英文:SceneGameObjectComponent

场景的简单编辑操作:创建、复制、删除。

Unity中的基本模型和场景操作

1、如何创建基本模型和如何导入复杂模型

2、场景基本操作

聚焦:双击游戏物体 或者 F

放大缩小视野:鼠标滚轮

围绕物体旋转:Alt+鼠标左键

使用MoveTool下 移动物体

3、视野分类

Persp 透视视野 ISO平行视野

在不同视野下:关于鼠标右键的不同

4、保存(场景保存、代码保存)

Ctrl + S

世界坐标系和局部坐标系

坐标系:x 左右 y 上下 z前后

局部坐标系:父物体和子物体

**单位:**Unity里面的坐标是以米为单位的

工具栏

四个工具:Q W E R

**Q:**视图工具(使用鼠标中键可以临时切换到这个恐惧)

**W:**移动工具

**E:**旋转工具

**R:**缩放工具

其他工具

Rect Tool Transform Tool Collider Tool

切换工具

位置工具:Pivot原点 - Center中心

局部和全局坐标切换:Local - Global

步移工具

按钮

快捷键:Ctrl

条件:世界坐标系下

案例开发

案例演示

开发步骤

1、创建工程

2、创建场景

3、创建小球和地面 - Plane (位置都是0,0,0)

4、创建材质,修改地面颜色

材质

游戏物体 - 材质 - 贴图 - 颜色 - Shader(着色器) 这几个关系

基本组件

Transform:变换组件,位置、旋转、缩放。

Mesh Filter:网格

Meth Render:网格渲染(这个组件会使用材质进行渲染)

Collider:碰撞检测

为什么渲染模型和碰撞模型要分开?

-游戏世界和现实世界的区别

添加刚体组件

**作用:**模拟物理效果(重力、摩擦力、弹力、动力等),可以通过刚体控制小球的运动。

添加代码组件

代码零基础学生:模仿 不求甚解。 后期学习C#语法基础

如何添加代码,如何删除代码?

添加两种方式:1、在Project里面 2,在Inspector面板上

删除步骤:1、删除代码 2、删除组件

写代码 - 控制小球移动

工具:在Preference里面指定使用的编辑工具,默认是VS。

脚本的基本结构

1、引用

2、脚本名字(类名)(类名和脚本名保持一致)

3、什么是方法

4、Start方法和Update方法 - 系统方法(事件方法)

控制台面板 - Console

1、怎么打开

2、怎么输出

3、收缩输出

4、注释

几个概念:方法 输出 打印 日志 调用 注释

在代码中获取刚体组件

第一种方法 - 通过代码获取

private Rigidbody rd;

rd = rd = GetComponent<Rigidbody>();

第二种方法 - 通过拖拽

public Rigidbody rd;

给小球添加力

rd.AddForce(Vector3.forward);

**知识点1:**方法调用

x.AddForce 也可以叫做调用指令,调用指令的时候需要通过()传递参数。

小明你去买点菠菜。 小明.买(菠菜) 小明.买菠菜()

**知识点2:**三维向量 (x,y,z)

Vector3.forward 等于 (0,0,1)

向量两个要素(方向,长度) (0,0,1) (0,0,4)

**知识点3:**一些常用的向量

Vector3.right Vector3.left Vector3.forward Vector3.back Vector3.up Vector3.down

**知识点4:**怎么创建向量

new Vector3(x,y,z)

通过按键控制左右运动

float h = Input.GetAxis("Horizontal");
rd.AddForce(new Vector3(h,0,0));

1、 A D 键 和 左右方向键

2、如何设置(Project Setting -》Input Manager)

前后(通过上下键)

float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
rd.AddForce(new Vector3(h,0, v));

控制力的大小(速度的大小)

public int force = 5;

控制相机位置和跟随

步骤:

1、得到Player的Transform

2、计算位置偏移

3、根据位置偏移设置相机的位置

额外知识:

编程中的变量 向量的计算(初高中知识) 类-组件

    public Transform playerTransform;
    private Vector3 offset;
    // Start is called before the first frame update
    void Start()
    {
        offset = transform.position - playerTransform.position;
    }
    // Update is called once per frame
    void Update()
    {
        transform.position = playerTransform.position + offset;
    }

添加墙体

创建可捡起物和创建预制体(Prefab)

1、添加Pickup

2、制作预制体

为什么做成预制体?

怎么修改预制体?

预制体和示例的单向传递(Class Object)

3、让Pickup旋转起来

transform.Rotate(Vector3.up,Space.World);

如何查看文档

检测碰撞

1、系统事件(消息,方法)

系统调用(发送)

示例:

OnCollisionEnter OnCollisionExit OnCollisionStay

测试碰撞是三个事件

2、获取到碰撞的物体名字

private void OnCollisionEnter(Collision collision)
{
    string name = collision.collider.name;
    Debug.Log(name);
}

知识点

GameObject Component

component.gameObject

component.gameObject.name

component.name

3、添加标签,通过标签区分某一类物体(食物、敌人)

private void OnCollisionEnter(Collision collision)
{
    if(collision.collider.tag == "PickUp")
    {
        Destroy(collision.collider.gameObject);
    }
}

**注意:**书写代码要在英文输入法下。

触发检测

1、哪些方法

OnTriggerEnter OnTriggerStay OnTriggerExit

2、使用

private void OnTriggerEnter(Collider other)
{
}

计分

UI显示分数

using UnityEngine.UI;

public Text text;

text.text = "分数2";

添加胜利提示UI

游戏发布

1、安装发布模块

2、发布(Build 构建)

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-02-22 20:56:56  更:2022-02-22 20:59:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 16:45:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码