记录:Unity脚本的编写3.0

news2024/11/15 15:40:52

目录

  • 前言
  • 前置
  • 控制方法
  • 查看效果
  • 移动方式

前言

前面记录了一些通过脚本控制对象模型移动和通过用户的操作对模型进行变化的方法,那么为了让我们创造的不论是地形还是模型都拥有真实的物理引擎(大雾),那么这次就使用脚本控制模型感受一下什么叫做重力和碰撞吧

前置

  • 输入系统:INputSystem
  • 角色控制器CharacterController:不能同时添加刚体组件
  • move();需要乘deltaTime,不受重力影响,需要使用isGrounded判断
  • SimpleMove():不需要乘deltaTime,受重力影响
  • 碰撞体:collider
  • 碰撞检测:两方都有Collider,至少一方有Rigidbody
  • 刚体:rigidbody

控制方法

这里和之前的代码很相似,毕竟只是稍微修改了一下,根本的东西没有什么变化

public class 找异性 : MonoBehaviour
{
    CapsulecastCommand cc;//创建一个capsulecastcommand对象
    // Start is called before the first frame update
    void Start()
    {
        cc = GetComponent<CapsulecastCommand>();
    }
public float floSpeed = 2;
    public float floRotate = 2;

    // Update is called once per frame
    void Update()
    {
 
        Move();//键盘控制物体平移
        
        Look();//鼠标控制物体旋转
       
       
    }
    protected void Move()
        {
            float x = Input.GetAxis("Horizontal");
            float z= Input.GetAxis("Vertical");
        transform.Translate(new Vector3(x,0, z) * floSpeed * Time.deltaTime);

       
    }
    private void Look()
        {
            float y = Input.GetAxis("Mouse Y") *floRotate* Time.deltaTime;
            float x = Input.GetAxis("Mouse X") *floRotate* Time.deltaTime;
        transform.Rotate(Vector3.up, x);
        transform.Rotate(Vector3.down, y);
        
        }
    //碰撞检测的方法
    private void OnCollisionEnter(Collision collision)//碰撞发生时
    {
        //Destroy(collision.transform.gameObject);
        Debug.Log("刚碰到");
    }
    private void OnCollisionExit(Collision collision)//碰撞结束时
    {
        Debug.Log("碰完了");
    }
    private void OnCollisionStay(Collision collision)//正在碰撞时
    {
        Debug.Log("");
    }
}

这样我们就可以做到让我们创建的模型进行物理碰撞(而不是穿模了)

查看效果

一开始是这样的效果(指开始创建的正常的对象)
在这里插入图片描述
然后就会变成这个样子
在这里插入图片描述
由于重力的原因,创建的对象模型(球),进行了一个坠的下,然后我们再像之前一样使用键盘对模型进行操作
在这里插入图片描述
在这里插入图片描述

可以看到产生了一些奇怪的变化,整个世界旋转了起来,并且一直在旋转,这大概是碰撞的结果罢(心虚),其实这样因为摄像机的位置的原因,我们可以看到在这个过程中,摄像机被设置为了跟随球,于是在球被碰撞后,摄像机就随之转了起来,而如果我们把摄像机拿下来,就可以发现一些新的操作
在这里插入图片描述
可以看到球球跟随着键盘移动,然后如果碰撞到了其他模型
在这里插入图片描述
就会发现,球球旋转着(坐标变化)离开了这个世界(

移动方式

在碰撞完之后,来看看如何让模型在之前创建的地图中进行移动

 //世界坐标系移动
        CapsulecastCommand.move(new Vector3(x, 0, z) * floSpeed * Time.deltaTime);
        cc.isGrounded;    //bool值,判断是否在地面
        cc.SimpleMove Vector3(x,0,z)*floSpeed)

        //局部坐标移动
        cc.SimpleMove((transform.forward * z + transform.right * x) * floSpeed);

将这段代码加入到move方法中去(当然不能同时添加,毕竟是两种不同的方式),然后就会发现我们可以通过键盘的操控使得模型在地图中进行移动,这里就不加以赘述,感兴趣可以自行尝试

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

purr map walk 学习教程 完整版

Function reference • purrrhttps://purrr.tidyverse.org/reference/index.htmlMap over multiple input simultaneously (in "parallel") — pmap • purrr

linux python 保存图形savefig import matplotlib.pyplot as plt

import matplotlib.pyplot as plt # 绘制图形 mod.plot_history(20)# 保存图形 plt.savefig("my_training_ephoes_plot.png") # 保存为PNG格式 # 保存图形并设置dpi参数 plt.savefig("my_plot.png", dpi600) # 保存为PNG格式&#xff0c;设置dpi为300

Conv1d与Conv2d函数用法

Conv1d 和 Conv2d 分别是卷积神经网络&#xff08;CNN&#xff09;中的两种卷积层操作&#xff0c;它们在处理不同维度的数据上有联系和区别&#xff0c;本文是一篇学习笔记。 本文主要包括以下内容&#xff1a; 1.联系2.区别3.Conv1d卷积4.Conv2d卷积5.图解Conv1d卷积&#x…

一文告知HTTP GET是否可以有请求体

HTTP GET是否可以有请求体 先说结论&#xff1a; HTTP协议没有规定GET请求不能携带请求体&#xff0c;但是部分浏览器会不支持&#xff0c;因此不建议GET请求携带请求体。 HTTP 协议没有为 GET 请求的 body 赋予语义&#xff0c;也就是即不要求也不禁止 GET 请求带 body。大多数…

教资一年可以考几次 教资考试每年次数介绍

教师资格证一年可以考两次。根据教师资格证考试规定&#xff0c;为了满足报考人员的工作需求&#xff0c;达到市场供求均衡的状态&#xff0c;教师资格证区别于其他的技术资格类的考试&#xff0c;会每年举行两次考试&#xff0c;分别在上半年和下半年各举行一次考试。 上半年…

设计模式 - 行为型模式考点篇:策略模式(概述 | 案例实现 | 优缺点 | 使用场景)

目录 一、行为型模式 1.1、策略模式 1.1.1、概论 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 1.1、策略模式 1.1.1、概论 策略模式设计的每一个算法都封装了起来&#xff0c;使他们可以相互替换&#xff0c;通过一个对象委派不同的算法给相应的客户…

【网络安全】关于CTF那些事儿你都知道吗?

关于CTF那些事儿你都知道吗&#xff1f; 前言CTF那些事儿内容简介读者对象专家推荐 本文福利 前言 CTF比赛是快速提升网络安全实战技能的重要途径&#xff0c;已成为各个行业选拔网络安全人才的通用方法。但是&#xff0c;本书作者在从事CTF培训的过程中&#xff0c;发现存在几…

Ant Design of React 创建项目及运行环境

Ant Design of React 学习笔记&#xff08;1&#xff09; 创建项目及运行环境 本文使用 create-react-app 创建一个 TypeScript 项目&#xff0c;并引入 antd。 1.命令行cd到对应的目录&#xff0c;这里是npm下回车运行&#xff0c;其他如pnpm yarn参考官网 npx create-reac…

Java实验(头歌) -Java继承和多态接口

/*** 编写程序&#xff0c;实现两个数的求和运算和比较*/ // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码 /********** Begin **********/ // 定义一个接口类 Compute// 第一个为 sum()&#xff0c;实现两个数的相加&#xff0c;返回值为 int// 第二个为 max()…

【软件测试】APP 上架指南:iOS App Store 首次上架被拒原因分析与解决方案

目录 一、前言 二、APP 审核备案新规 &#xff08;1&#xff09;iOS 上架审核申请被拒 &#xff08;2&#xff09;苹果应用商店重大调整 &#xff08;3&#xff09;首次备案流程 ① 阿里云备案 ② 华为云备案 ③ 腾讯云备案 三、iOS 首次上架拒审原因分析 &#…

动捕设备推动舞蹈表演动作捕捉动画制作突破边界

动捕设备是音乐动画制作中获得巨大创作潜力的一种全新途径。使用全身动捕设备可以花更少的时间编辑预制动画资产&#xff0c;从而节省时间投入到创建更为丰富的动画制作环境中。 如广州虚拟动力对于舞蹈表演动作捕捉动画制作服务&#xff0c;能够提供惯性动捕设备vdsuit full以…

ctfshow-web2(SQL注入)

打开题目链接&#xff0c;是一个登录框&#xff0c;尝试弱口令登录 没什么反应 尝试万能密码登录 页面发生了变化 并未登录进去&#xff0c;但是有回显&#xff0c;大概率是SQL注入了 这里尝试了很久&#xff0c;尝试过程就不写了&#xff0c;最终判断它的注入点在用户名&…

C++ 类和对象篇(七) 运算符重载

目录 一、运算符重载 1. 运算符重载是什么&#xff1f; 2. 为什么要运算符重载&#xff1f; 3. 怎么进行运算符重载&#xff1f; a. 运算符重载函数的格式 b. 参数的个数和要重载的运算符操作数相同 c. 运算符重载函数必须有一个类类型参数 4. 注意事项 二、 赋值运算符重载 1.…

提升企业形象与效率,申请办理400电话客服中心

引言&#xff1a; 随着企业竞争的日益激烈&#xff0c;提供优质的客户服务成为企业赢得市场份额的关键。而400电话客服中心的建立&#xff0c;不仅可以提升企业形象&#xff0c;还能提高客户满意度和工作效率。本文将介绍400电话客服中心的申请办理过程&#xff0c;以及其对企业…

Starrc读lef遇到的常见错误

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 ERROR: the definition cell "BUFXX" instantiated as xx in DEF file xx is not found.(SX-2144) ERROR: Instance xx has no definition. (SX-2505) 这个问题就是典型的lef数据不全,…

lua学习笔记

单行注释&#xff1a; 多行注释&#xff1a; 命名&#xff1a; Lua不支持下划线大写字母&#xff0c;比如&#xff1a;_ABC 但支持&#xff1a;_abc 关键字&#xff1a; 全局变量&#xff1a; 直接变量名 内容就是全局 局部变量&#xff1a; 加上local即可 nil&#xff1…

【多线程案例】阻塞队列,实现生产者消费者模型

阻塞队列&#xff08;BlockingQueue&#xff09; 阻塞队列是多线程代码中比较常用的一种数据结构。是一种特殊的队列&#xff0c;带有阻塞特性。 为何说是一种特殊的队列&#xff1f; 1.线程安全 2.带有阻塞特性 如果队列为空&#xff0c;继续出队列&#xff0c;就会发生阻塞…

零基础Linux_13(基础IO_文件)文件系统接口+文件描述符fd+dup2函数

目录 1. C语言的文件操作 1.1 C语言文件的写入 1.2 当前路径 1.3 文件操作模式 1.4 文件的读取和cat 2. 文件系统接口 2.1 系统调用与封装 2.2 open打开文件 2.2.1 flags标记位 2.2.2 open用法演示 2.3 close关闭文件和write写入文件和rede读取文件 2.3.1 O_TRUNC…

基于JSP的动漫论坛

摘 要 作为文化产业的一部分&#xff0c;动漫影响了我国一代又一代青少年&#xff0c;据钱江晚报调查显示&#xff0c;有超过七成的95后愿意从事与动漫相关的行业&#xff0c;可见其对青少年影响力之大。 动漫论坛作为最先开始热爱动漫人士进行交流的方式之一&#xff0c;是爱…

Reactor网络模式

文章目录 1. 关于Reactor模式的了解2. 基于Reactor模式实现epoll ET服务器2.1 EventItem类的实现2.2 Reactor类的实现Dispatcher函数AddEvent函数DelEvent函数EnableReadWrite函数 2.3 四个回调函数的实现acceptor回调函数recver回调函数sender回调函数errorer回调函数 3. epol…