U3D中的一些方法和属性

本文介绍了Unity游戏开发中常用的字符串操作、对象销毁、预设体生成、协程控制、输入检测等核心功能,并详细讲解了如何自定义输入及映射到不同设备。

  

string.Format();//拼接字符串的方法,里面可用占位符,方法内部为string

 

Destroy(Object obj);//立刻销毁(游戏对象,组件或者asset)

Destroy(Object obj, float timer);//过timer的时间后销毁

Cursor.visible=ture;鼠标是否显示

Cursor.lockState = CursorLockMode.Locked;//鼠标锁定在屏幕中间隐藏

Cursor.lockState = CursorLockMode.None;//解除鼠标锁定

//预设体生成方法的重载

Instantiate(Object original);
Instantiate(Object original, Transform parent);
Instantiate(Object original, Transform parent/*设置父物体*/, bool instantiateInWorldSpace/*设置的位置是否为世界位置*/);
Instantiate(Object original, Vector3 position, Quaternion rotation);
Instantiate(Object original, Vector3 position, Quaternion rotation, Transform parent);

 与协程有关的函数:(协程函数返回类型必须为IEnumerable,yield return)

  StartCoroutine  //启动一个协程

  StopCoroutine  //终止一个协程

  StopAllCoroutine  //终止所有协程

  WaitForSecond  //等待若干秒

  WaitForFixedUpdate  //等待直到下一次FixedUpdate调用

Input类中和鼠标输入有关的方法和变量:

  mousePostion  //得到当前鼠标位置

  GetMouseButtonDown  //鼠标按键按下的第一帧返回true

  GetMouseButton  //鼠标按键按下期间椅子返回true

  GetMouseButtonUp  //鼠标按键松开的第一帧返回true

  GetAxis("MouseX")  //得到一帧内鼠标在水平方向的移动距离

  GetAxis("MouseY")  //得到一帧内鼠标在垂直方向的移动距离

Input类中键盘输入的方法:

  GetKey  //键盘按下期间返回true

  GetKeyDown  //键盘按下的第一帧返回true

  GetKeyUp  //键盘松开的第一帧返回true

  GetAxis("Horizontal")  //用方向键或A,D来模拟-1到1的平滑输入

  GetAxis("Vertical")  //用方向键或W,S来模拟-1到1的平滑输入

游戏外设输入方法(摇杆、游戏手柄、方向盘等标准游戏外设的输入):

  GetAxis  //得到输入轴的数值

  GetAxisRaw  //得到未经平滑处理的输入轴的数值

  GetButton  //虚拟按键按下期间一直返回true

  GetButtonDown  //虚拟按键按下的第一帧返回true

  GetButtonUp  //虚拟按键松开的第一帧返回true

 

自定义输入:

  在Unity中可以创建自定义的虚拟按键,然后将设备的输入映射到自定义的按键上。使用虚拟按键的的好处是可以让游戏玩家自由定义按键,满足个性化的操作习惯

  创建虚拟按键的方法是依次选择菜单栏中的Edit—>ProjectSetting—>Input命令,在Inspector视图中会显示当前的虚拟按键列表和参数

  虚拟按键属于输入轴(Axis)的一种特殊情况,在输入管理器中,都统一视为输入轴

  Unity默认创建了18个输入轴,有几个名字是相同的,例如名为Jump的轴有两个,分别映射到了键盘上的Space和摇杆上的按键3

  

  Axes:包含当前工程所有定义的输入轴,Size为轴的数量

  Name:输入轴名称,用于游戏启动时的配置界面和脚本访问

  Descriptive Name:轴的正按键描述,在游戏启动界面中显示

  Descriptive Negative Name:轴的负按键的描述,在游戏启动界面中显示

  Negative Button:轴的负按键对应的物理按键

  Positive Button:轴的正按键对应的物理按键

  Alt Negative Button:轴的负按键对应的备选物理按键

  Alt Positive Button:轴的正按键对应的备选物理按键

  Gravity:输入的复位速度,仅用于类型为键/鼠标的按键

  Dead:小于该值的任何输入值(不论正负)都会被视为0,用于摇杆

  Sensitivity:灵敏度,对于键盘输入,该值越大则响应速度越快,该值越小则越平滑。对于鼠标输入,设置该值会对鼠标的时机移动距离按比例缩放

  Snap:如果该值为true,当轴收到负按键的输入信号时,轴的数值会立即置为0,仅用于鼠标和键盘的输入

  Invert:如果该值为true,正按键会发送负值,负按键会发送正值

  Type:输入轴的类型,按键对应Key/Mouse类型;鼠标移动和滚轮滑动应对应Mouse Movement类型;摇杆应设置为Joystrick Axis;窗口移动消息设置为Window Movement。

  Axis:要映射的设备输入轴(摇杆、鼠标、手柄等)

  Joy Num:设置使用哪个摇杆作为消息输入,默认接收所有摇杆的输入,仅用于输入轴和非按键输入

 

  如果在Input Manager中设置了输入轴,在桌面系统运行发布的游戏时,Unity默认会显示一个游戏的配置窗口,用于配置显示效果和输入按键映射

 

Matlab基于粒子群优化算法及鲁棒MPPT控制器提高光伏并网的效率内容概要:本文围绕Matlab在电力系统优化与控制领域的应用展开,重点介绍了基于粒子群优化算法(PSO)鲁棒MPPT控制器提升光伏并网效率的技术方案。通过Matlab代码实现,结合智能优化算法与先进控制策略,对光伏发电系统的最大功率点跟踪进行优化,有效提高了系统在不同光照条件下的能量转换效率并网稳定性。同时,文档还涵盖了多种电力系统应用场景,如微电网调度、储能配置、鲁棒控制等,展示了Matlab在科研复现与工程仿真中的强大能力。; 适合人群:具备一定电力系统基础知识Matlab编程能力的高校研究生、科研人员及从事新能源系统开发的工程师;尤其适合关注光伏并网技术、智能优化算法应用与MPPT控制策略研究的专业人士。; 使用场景及目标:①利用粒子群算法优化光伏系统MPPT控制器参数,提升动态响应速度与稳态精度;②研究鲁棒控制策略在光伏并网系统中的抗干扰能力;③复现已发表的高水平论文(如EI、SCI)中的仿真案例,支撑科研项目与学术写作。; 阅读建议:建议结合文中提供的Matlab代码与Simulink模型进行实践操作,重点关注算法实现细节与系统参数设置,同时参考链接中的完整资源下载以获取更多复现实例,加深对优化算法与控制系统设计的理解。
在 Unity3D 中,Prefab(预设) Model(模型)是两种不同的资源型,它们在用途功能上有显著的区别。 ### Prefab(预设) Prefab 是一种可重复使用的游戏对象模板。它可以包含一个或多个 GameObject 及其组件、属性子对象的组合。通过 Prefab,开发者可以轻松地在多个场景中复用复杂的对象结构,确保一致性并提高开发效率。例如,一个 Prefab 可以是一个完整的角色,包含网格、材质、动画控制器、碰撞器刚体等组件。开发者可以在场景中实例化 Prefab,并且对 Prefab 的修改可以同步到所有实例化对象中,也可以单独修改某个实例而不影响其他实例。 ### Model(模型) Model 通常指的是 3D 模型文件,如 FBX 或 OBJ 格式的文件。它主要包含几何数据(顶点、面、UV 等)、材质信息以及可能的动画数据。Model 是用于构建游戏世界的视觉元素的基础。当导入 Unity 时,Model 会被解析为 Mesh(网格)资源,并可以附加到 GameObject 上,结合材质动画控制器来展示完整的视觉效果。 ### 主要区别 - **用途**:Prefab 用于组织复用游戏对象及其组件,而 Model 主要用于表示 3D 视觉元素。 - **内容**:Prefab 可以包含多个 GameObject 及其组件,而 Model 通常是单一的几何数据文件。 - **灵活性**:Prefab 支持实例化全局修改,适合构建复杂的、可重复使用的对象结构;Model 则更多用于静态或动态的视觉表现,通常需要与其他组件结合使用以实现完整功能。 ### 示例代码 以下是一个简单的示例,展示如何在 Unity 中通过脚本实例化一个 Prefab: ```csharp using UnityEngine; public class InstantiatePrefab : MonoBehaviour { public GameObject prefab; // 在 Inspector 中分配 Prefab void Start() { // 在指定位置实例化 Prefab Instantiate(prefab, new Vector3(0, 0, 0), Quaternion.identity); } } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值