Dotween笔记
Dotween是unity里非常常用的插件,但是很多人应该没有仔细的阅读过它的api,它实际有很多好用的方法,下面我就针对一些相对常用的方法,做下总结:
Dotween常用方法详解-CSDN博客
Transform拓展方法1) Position1)改变世界坐标移动方法,第一个参数是要移动到的目标点,不是移动这个向量的距离。
1transform.DOMove(new Vector3(1, 1, 1), 2);
只控制x轴上的移动,其他两个方向同理。
1transform.DOMoveX(1, 2);
2)改变局部坐标12transform.DOLocalMove(new Vector3(1, 1, 1), 2);transform.DOLocalMoveX(1, 2);
2) Rotation1)世界旋转旋转到给定的值,改变的是欧拉角。
1transform.DORotate(new Vector3(0, 90, 0), 2);
旋转到给定的值,改变的是四元数。
1transform.DORotateQuaternion(new Quaternion(0.1f, 0.1f, 0 ...
每日一题
不鸣 引擎一面
介绍项目经历
ECS的优势
ECS除了Cache以外的好处
配表相关工作
配表遇到的问题,还有什么可以完善(表间数据引用)
C++的sizeof受到哪些影响
空对象的sizeof
虚函数实现原理
析构函数的虚函数
虚函数何时呈现多态
讲讲share_ptr
share_ptr除了指针和引用计数器外还有什么成员
share_ptr是线程安全的吗
代码测试题目
实现一个成员变量赋值的函数
减少赋值过程的拷贝
反问
岗位是否涉及GamePlay:负责开发引擎的Runtime和插件,本岗位是开发配表插件的
4 二面
问实习项目
如何实现对象池的
都做了哪些配表工作
我提到的Luban插件是如何工作的
如何解决Map嵌套复杂数据类型的场景(然而官方手册上说不支持这个功能)
是否有多线程相关经验
share_ptr是线程安全的吗,为什么
代码测试
实现构造函数、拷贝构造、移动构造、拷贝赋值、移动赋值(注意自己赋值自己的情况)
测试这几个构造函数
解释一下Lua元表(因为简历上提过)
C++如何与Lua沟通的
xlua如何实现C#和Lua沟通的(因为提到了Unity的x ...
FSM与BT
FSM
FSM是一种数据结构,它由以下几个部分组成:
内在的所有状态(必须是有限个)
输入条件
状态之间起到连接性作用的转换函数
FSM的描述性定义:一个有限状态机是一个设备,或是一个模型,具有有限数量的状态。它可以在任何给定时间根据输入进行操作,使得系统从一个状态转换到另一个状态,或者是使一个输出或者一种行为的发生,一个有限状态机在任何瞬间只能处于一种状态。
State 状态基类,定义了基本的Enter,Update,Exit三种状态行为,通常在这三种状态行为的方法里会写一些逻辑。每个State都会有StateID(状态id,可以是枚举等),FSMControl(控制该状态的状态控制器的引用),Check方法(用来进行状态判断,并返回StateID,通过FSMControl驱动)
unity引擎基础
unity引擎基础
生命周期
Reset 是在用户点击检视面板的Reset按钮或者首次添加该组件时被调用。此函数只在编辑模式下被调用。Reset最常用于在检视面板中给定一个最常用的默认值。
Awake 用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次,当脚本设置为不可用时,运行时Awake方法仍然会执行一次。Awake在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如 GameObject.FindWithTag 这样的函数搜索它们。每个游戏物体上的Awke以随机的顺序被调用。因此,你应该用Awake来设置脚本间的引用,并用Start来传递信息 ,Awake总是在Start之前被调用。它不能用来执行协同程序。
OnEnable当对象变为可用或激活状态时被调用事件监听。
Start 在behaviour的生命周期中只被调用一次。它和Awake的不同是Start只在脚本实例被启用时调用。你可以按需调整延迟初始化代码。Awake总是在Start之前执行。这允许你协调初始化顺序。
FixedUpdate 当MonoBehaviour启用时,其在每一帧 ...
Fungus 笔记
Fungus 文档地址首页 ·snozbot/fungus 维基 — Home · snozbot/fungus Wiki
简单入门:
【Unity 实用插件篇】 | 使用Fungus插件制作一个对话系统,简单好学易上手-腾讯云开发者社区-腾讯云
Fungus通信方式Fungus 是一个基于 Unity 的叙事工具,它提供了强大的可视化编程功能,但有时你需要将 Fungus 与自定义的 C# 代码结合使用,以实现更复杂的游戏逻辑。以下是 Fungus 与代码通信的几种常见方式:
1. 通过 Message 通信Fungus 的 Message 是一种事件机制,可以在代码中触发 Fungus 的 Block 执行。
步骤:
在 Fungus Flowchart 中创建一个 Block,并添加 Message 命令,设置 Message 名称(例如 "StartDialogue")。
在 C# 脚本中调用 Flowchart.SendMessage 来触发该 Message。
示例代码:12345678910111213141516using UnityEngine ...
Dialogue System for Unity
目前在使用Fungus,这个插件后续再使用
Dialogue System for Unity使用(一)基本设置和功能介绍-CSDN博客
764424567/Demo_DialogueSystem: DialogueSystem插件Demo
https://www.bilibili.com/video/BV13Y4y1Y7di
Dialogue System for Unity: Quick Start
【Unity3D插件】Dialogue System for Unity插件分享《对话系统插件》-CSDN博客
Unity红点系统
Unity红点系统(Lua语言实现)Unity红点系统是一种常见的游戏UI设计机制,用于提示玩家有未查看的内容或可操作的功能。它通常表现为一个小红点,出现在按钮、图标或菜单项上,提醒玩家进行交互。
红点节点脚本123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109local RedDotNode = class() -- class是项目中封装的一个模拟面向对象中的类的功能function RedDotNode:__new(name, parent) self.name = name -- 名称 self.parent = parent -- 父节点 self.chil ...
UGUI
UGUI中的Image和RawImage的区别Image 组件Image 组件是UGUI中最常用的用于显示图像的组件。它支持多种图像类型(如Sprite、Sprite Atlas、Texture2D等),并且提供了一些方便的属性来调整图像的显示方式,如**color(颜色)、material(材质)、sprite**(精灵)等。
主要特点:
支持Sprite和Texture2D:可以直接使用Unity中的Sprite或Texture2D资源。
具有内置的颜色调整:可以通过**color**属性调整图像的颜色。
支持材质:可以通过**material**属性应用自定义的Shader效果。
12345678910111213141516using UnityEngine;using UnityEngine.UI; public class ImageExample : MonoBehaviour{ public Image myImage; // 拖拽赋值或通过代码查找 void Start() { // 设置Sprite(需要先在项 ...
OS
异步
进程,线程,协程的区别?
1、进程
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相对比较稳定安全。
2、线程
线程是进程的一个实体,是CPU调度和分配的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。线程间通信主要通过共享内存,上下文切换很快,资源开销较少,但相比进程不够稳定容易丢失数据。
3、协程
协程是一种用户态的轻量级线程,协程的调度完全由用户控制。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈,直接操作栈则基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快。
协程就是在unity ...