当前位置: 首页 > news >正文

可以做外包的网站高端大气网站建设

可以做外包的网站,高端大气网站建设,陕西省建设厅执业资格注册中心网站报名系统,高新区做网站的公司本文介绍如何在编辑器里让物体围绕一个点旋转固定角度,比如上图里的Cube是围绕白色圆盘的中心旋转45度的。 目标: 创建一个在 Unity 编辑器中使用的旋转工具,使开发者能够在编辑模式下快速旋转一个物体。 实现思路: 编辑模式下…

在这里插入图片描述

本文介绍如何在编辑器里让物体围绕一个点旋转固定角度,比如上图里的Cube是围绕白色圆盘的中心旋转45度的。

目标:

创建一个在 Unity 编辑器中使用的旋转工具,使开发者能够在编辑模式下快速旋转一个物体。

实现思路:

  1. 编辑模式下操作:

    • 使用 ExecuteInEditMode 特性让脚本在编辑模式下执行,而不需要进入播放模式。这对于关卡设计或对象调整非常有用,因为可以实时看到编辑效果。
  2. 核心功能(旋转操作):

    • EditorRotateTool.cs 提供了旋转功能:通过 RotateAround 方法将目标物体围绕某个指定的中心点旋转一定角度。该操作仅在编辑模式下执行,并且可以设置旋转的轴(如绕 Y 轴旋转)。
  3. 自定义 Inspector 界面:

    • EditorRotateToolInspector.cs 用于自定义 EditorRotateTool 脚本的 Inspector 界面。通过重写 OnInspectorGUI(),在 Unity 编辑器面板中提供一个按钮 “旋转物体”,用户点击该按钮时触发旋转操作。
  4. 流程

    • 用户在 Unity 编辑器中将 EditorRotateTool.cs 脚本挂载到一个物体上。
    • 在 Inspector 中设置目标物体、旋转角度和旋转轴。
    • 用户点击 “旋转物体” 按钮时,EditorRotateToolInspector 会调用 EditorRotateTool 中的 RotateAroundTarget 方法,在编辑模式下旋转物体。

实现步骤:

  1. 编写旋转工具脚本(EditorRotateTool.cs

    • 创建一个可以旋转物体的工具,允许设置旋转的目标、角度和轴。
    • 使用 ExecuteInEditMode 使脚本在编辑模式下运行。
  2. 编写自定义 Inspector(EditorRotateToolInspector.cs

    • 为旋转工具脚本创建一个自定义的 Inspector 界面。
    • 增加一个按钮,在编辑器面板中触发旋转操作。
  3. 用户操作:

    • 用户在 Unity 编辑器中设置旋转目标,点击按钮触发旋转。

这个实现的核心思想是通过自定义编辑器扩展提高开发效率,使开发者在不进入播放模式的情况下快速查看物体的旋转效果,尤其适用于关卡设计和场景调整。

代码实现

文件 1: EditorRotateTool.cs

using UnityEngine;[ExecuteInEditMode] // 允许在编辑模式下运行
public class EditorRotateTool : MonoBehaviour
{public Transform target; // 目标物体(中心点)public float angle = 45f; // 旋转角度public Vector3 axis = Vector3.up; // 旋转轴/// <summary>/// 执行旋转/// </summary>public void RotateAroundTarget(){if (target != null){// 仅在编辑模式下执行if (!Application.isPlaying){transform.RotateAround(target.position, axis, angle);Debug.Log("编辑模式下旋转完成!");}}else{Debug.LogWarning("请设置目标物体!");}}
}

这是主脚本,用于定义一个旋转工具:

  1. 关键属性

    • target:目标对象(作为旋转中心点的物体)。
    • angle:旋转角度,默认为 45 度。
    • axis:旋转轴,默认为 Vector3.up(即围绕 Y 轴旋转)。
  2. 核心方法

    • RotateAroundTarget():用于实现目标物体的旋转。
      • 检查是否设置了 target
      • 在编辑模式下(非运行时),调用 transform.RotateAround 以目标位置为中心点、指定旋转轴和角度进行旋转。
      • 通过 Debug.Log 输出提示旋转是否完成或目标未设置。
  3. 使用 ExecuteInEditMode

    • 此脚本允许在编辑模式下执行(无需运行游戏),方便开发者操作。

文件 2: EditorRotateToolInspector.cs

using UnityEngine;
using UnityEditor;[CustomEditor(typeof(EditorRotateTool))]
public class EditorRotateToolInspector : Editor
{public override void OnInspectorGUI(){// 获取脚本引用EditorRotateTool tool = (EditorRotateTool)target;// 显示默认的 Inspector 字段DrawDefaultInspector();// 添加按钮if (GUILayout.Button("旋转物体")){tool.RotateAroundTarget();}}
}

这是一个自定义 Inspector 脚本,用于增强 Unity 编辑器中的用户界面:

  1. 核心功能

    • 扩展了 EditorRotateTool 脚本的 Inspector 面板。
    • 默认显示所有公共字段(target, angle, axis)。
    • 增加了一个按钮 “旋转物体”,当点击按钮时会调用 RotateAroundTarget() 方法,直接在编辑模式下旋转物体。
  2. 实现方式

    • 使用 [CustomEditor] 特性将这个 Inspector 关联到 EditorRotateTool
    • 重写了 OnInspectorGUI() 方法:
      • 调用 DrawDefaultInspector() 保持默认字段显示。
      • 添加按钮,用于触发旋转操作。

如何使用

  1. 挂载脚本

    • EditorRotateTool.cs 挂载到一个 GameObject(游戏对象)上。
  2. 设置参数

    • 在 Inspector 面板中设置:
      • Target:作为旋转中心点的物体。
      • Angle:旋转角度。
      • Axis:旋转轴(如 Vector3.up 表示 Y 轴)。
  3. 旋转操作

    • 在 Unity 编辑器中,脚本会通过 EditorRotateToolInspector 提供一个按钮 “旋转物体”。
    • 点击按钮,即可在编辑模式下让挂载脚本的物体绕指定目标旋转。
http://www.hkea.cn/news/186241/

相关文章:

  • 江苏网站备案要多久seo域名综合查询
  • 大型网站建设机构津seo快速排名
  • 建设证件查询官方网站宁波做网站的公司
  • 那些网站招聘在家里做的客服网店推广策略
  • 湘西 网站 建设 公司sem代运营托管公司
  • 用css为wordpress排版西安seo外包服务
  • vs2005做网站百度推广官方网站登录入口
  • 乐从网站建设公司北京seo优化推广
  • 如何在网上接做网站的小项目市场监督管理局电话
  • 淘宝购物站优化
  • 石家庄最新疫情轨迹河南网站优化公司哪家好
  • 网站色彩搭配服务器ip域名解析
  • 哪个网站专业做安防如何注册域名网站
  • 穆棱市住房和城乡建设局网站关键词词库
  • 成都网站建设市场什么是网络营销的核心
  • 深圳找人做网站廊坊优化外包
  • 衡阳市城市建设投资有限公司网站湖南企业seo优化报价
  • css做网站常用百度权重优化软件
  • 合合肥网站建设制作网站用什么软件
  • 杭州网站设计公司推荐网络推广与优化
  • 移动惠生活app下载网址荆门网站seo
  • 做网站很赚钱吗关键词自助优化
  • wordpress小工具里的用户中心南京谷歌优化
  • 网站开发中茶叶网络营销策划方案
  • 临海市住房与城乡建设规划局 网站目前最新的营销模式有哪些
  • 高校建设网站的特色如何建立一个网站
  • 公司做网站域名归谁搜索引擎营销策划方案
  • 怎么做外贸个人网站seo综合查询工具可以查看哪些数据
  • 黑客网站盗qq百度seo公司整站优化
  • 网页设计代码不能运行seo的中文名是什么