首页 > 其他分享 >Unity 常规用法

Unity 常规用法

时间:2023-10-18 18:33:54浏览次数:37  
标签:Collider Log void Vector3 常规 用法 Unity other Debug

刚体 Rigidbody
控制游戏对象的物理行为

// 获取刚体属性
GetComponent<Rigidbody>();

聚焦
双击、F键

窗口控制
ALT+鼠标左键
鼠标中键
鼠标右键
滑轮
点击方向键移动物体
E键调整角度

场景视野
透视视野、平行视野

世界坐标原点
小球设置0/0/0坐标

Unity常用组件
Transform:控制游戏对象的位置、旋转和缩放。
Rigidbody:用于模拟物理行为,例如重力、碰撞和运动。
Collider:用于检测碰撞和触发事件,包括Box Collider、Sphere Collider、Capsule Collider等。
Renderer:渲染组件,用于将游戏对象显示在屏幕上,包括Sprite Renderer、Mesh Renderer等。
Animator:用于控制游戏对象的动画,包括关键帧动画、骨骼动画等。
Audio Source:用于播放音效和音乐。
Camera:控制视角和渲染场景的相机组件。
Light:用于照明场景的光源组件,包括Directional Light、Point Light、Spot Light等。
Particle System:粒子效果组件,用于创建各种粒子效果,例如火焰、烟雾、爆炸等。
NavMesh Agent:用于实现智能导航和路径寻找的组件。

材质
smoothness选项
用于指定材质的表面光滑度的属性。它可以影响材质的外观和反射性质

相机
拍一定范围内东西
一个场景可以有两个相机。一个相机渲染人物,一个相机渲染背景,渲染之后进行叠加

拖拽属性
public可以
private不可以

向量和力
Vector3.right: 1牛的力

施加力

Rigidbody rb = gameObject.GetComponent<Rigidbody>();
Vector3 force = new Vector3(10f, 0f, 0f);
rb.AddForce(force);

键盘控制

private float moveSpeed = 5f;

void Update()
{
    float moveHorizontal = Input.GetAxis("Horizontal");
    float moveVertical = Input.GetAxis("Vertical");

    Vector3 movement = new Vector3(moveHorizontal, 0f, moveVertical) * moveSpeed * Time.deltaTime;

    transform.Translate(movement);
}

GetAxis
Input.GetAxis("Horizontal") // 返回水平方向上的输入值(-1到1之间)
-1是左,1是右,渐变

旋转

transform.Rotate(Vector3.up); // 1次1°

脚本
Start: 开始执行一次
Update: 1S执行60次

碰撞检测
物体之间的碰撞

private void OnTriggerEnter(Collider other)
{
    Debug.Log("Trigger entered: " + other.gameObject.name);
}

private void OnCollisionEnter(Collision collision)
{
    Debug.Log("Collision occurred with: " + collision.gameObject.name);
}

private void OnCollisionStay(Collision collision)
{
    Debug.Log("Continuously colliding with: " + collision.gameObject.name);
}

标签
查找、筛选、识别、区分、组织、管理

相机跟随

void Update()
{
    transform.position = Vector3.Lerp(transform.position, target.position, followSpeed * Time.deltaTime);
}

触发检测
Is Trigger属性勾选
物体之间的进入和离开

void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Player"))
    {
        Debug.Log("Player entered the trigger!");
    }
}

void OnTriggerStay(Collider other)
{
    if (other.CompareTag("Enemy"))
    {
        Debug.Log("Enemy is still inside the trigger!");
    }
}

void OnTriggerExit(Collider other)
{
    if (other.CompareTag("PowerUp"))
    {
        Debug.Log("Power-up has left the trigger!");
    }
}


点光源: 灯泡
平行光源: 太阳光
聚光灯: 手电筒
区域灯: 设定形状

渲染
其他渲染软件: DirectX、OpenGL

预制体
预先制作好的物体
模板

打包
窗口模式:Player->Resolution and Presentation->Fullscreen Mode(Windowed)

步移
设定好步长
按设置步长拖拽移动

移动相机

transform.Translate

上一帧执行的时间

Time.deltaTime

Update执行时间
Project setting -> Time 可设置

void FixedUpdate()
{
    // 每固定帧的更新逻辑
}

鼠标按下判断

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        Debug.Log("鼠标左键按下");
    }

    if (Input.GetMouseButtonDown(1))
    {
        Debug.Log("鼠标右键按下");
    }

    if (Input.GetMouseButtonDown(2))
    {
        Debug.Log("鼠标中键按下");
    }
}

添加冲力(开枪)

Rigidbody rb = GetComponent<Rigidbody>();
rb.velocity = new Vector3(1, 0, 0);

标签:Collider,Log,void,Vector3,常规,用法,Unity,other,Debug
From: https://www.cnblogs.com/zhangxuechao/p/17773054.html

相关文章

  • 在Unity的Inspector面板显示一个按钮
    在Unity的Inspector面板显示一个按钮这个脚本应该放置Unity的Assets文件夹下的Editor文件夹下。usingUnityEngine;usingUnityEditor;usingSystem.Collections.Generic;namespacewyhTools{[CustomEditor(typeof(InspectorShortcutButton))]//替换"YourScript"......
  • Oracle 中 decode 函数用法
    decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)Decode函数与一系列嵌套的IF-THEN-ELSE语句相似。该函数的含义如下:IF条件=值1THENRETURN(翻译值1)ELSIF条件=值2THENRETURN(翻译值2)......ELSIF条件=值nTHENRETURN(翻译值n)......
  • Unity DOTS中ECS核心架构详解
     最近DOTS终于发布了正式的版本, 我们来分享一下DOTS中ECS的几个关键概念与结构,方便大家上手学习掌握Unity DOTS开发。 ECS中的World  Unity DOTS ECS架构中所有的Entity都是被放到了World对象里面,每个Entity在World里面都有唯一的Id号。Unity DOTS 可以同时支持很多......
  • 【MySQL】DATE_FORMAT,DATE_ADD函数用法
    一、示例1select*frombi.testwhereDATE_FORMAT(UPDATE_TIME,'%Y-%m-%d')='2023-09-11';当然 '%Y-%m-%d'是可以根据实际需求调整的  二、示例22.1给时间增加一小时UPDATEbi.testSETUPDATE_TIME=DATE_ADD(UPDATE_TIME,INTERVAL1HOUR);2.2给时间减少......
  • 【Unity3D】程序纹理简单应用
    1几何纹理应用​本文所有案例的完整资源详见→Unity3D程序纹理简单应用。1.1边框​1)边框子图​Border.shadersubgraph​说明:Any节点用于判断输入向量中是否存在一个分量非零,Branch节点根据输入的真假走不同的分支,详见→ShaderGraph节点。​2)圆环......
  • 【Unity3D】水面特效
    1前言​水波特效中通过屏幕后处理实现了环形水波效果,本文通过ShaderGraph实现了模拟水面特效,包含以下特效细节。ShaderGraph基础知识详见→ShaderGraph简介、ShaderGraph节点、程序纹理简单应用。深水区和浅水区颜色差异;水面有波纹,并且在移动;水面起伏波动;水面......
  • axios基本用法
    Axios是一个流行的JavaScript库,用于进行HTTP请求。它可以在浏览器和Node.js环境中使用,提供了一种简单而强大的方式来与Web服务器进行通信,以下是Axios的基本用法示例:安装Axios:使用npm或yarn安装Axios:npminstallaxios//或yarnaddaxios在项目中引入Axios:constaxios......
  • break、continue、return在循环中用法的区别
    1.break:(1).结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条件测试。(2).只能跳出一层循环,如果你的循环是嵌套循环,那么你需要按照你嵌套的层次,逐步使用break来跳出。2.continue:(1).终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执......
  • Unity3D学习记录02——PloyBrush场景搭建
    首先在Window->PackageManager里面搜索PolyBrush,下载后将URP的Shader样例导入 导入后Asset文件夹下会有Sample的文件夹,在菜单栏Tools->PolyBrush->PolyBrushWindow打开窗口这个窗口最上面的五个,第一个是用来调整地形高低的,第二个是进行柔化场景的,第三个是调整颜色的,第四个......
  • Java中::的用法
    “::”是Java8引入的新特性之一,常常被称作为方法引用,提供了一种不执行方法的方法。使用“::”可以进一步简化一些使用了lambda表达式的代码,让代码更加简洁。用法1:省略lamda表达式publicclassTest01{publicstaticvoidmain(String[]args){String[]array......