基础
文章平均质量分 93
仙魁XAN
作为技术及管理人员,精通VR/AR/MR 3D开发,擅长使用Unity、Three.js、Laya等平台,开发创新的游戏、家具设计、教育和工业仿真应用。
在游戏开发中,带领团队创造沉浸式体验,提供创新玩法和引人入胜的故事情节。家具设计上,通过AR技术,为用户提供新颖的家居体验。
教育领域,负责开发交互式教学应用,提升学生学习兴趣和理解力。工业仿真项目中,运用VR技术优化产品设计和生产流程,提高效率。
还涉足人工智能,开发智能化应用,提供个性化服务。凭借技术与管理能力,期待与合作伙伴共同开发创新项目,创造卓越数字体验。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity 基础 之 Layer(层layer) 、LayerMask (遮罩层) 的 总结 和 使用(CullingMask、Ray 射线的使用等)
Unity 基础 之 Layer(层layer) 、LayerMask (遮罩层) 的 总结 和 使用(CullingMask、Ray 射线的使用等)目录Unity 基础 之 Layer(层layer) 、LayerMask (遮罩层) 的 总结 和 使用(CullingMask、Ray 射线的使用等)一、简单介绍二、layer 层查看与创建layer 层查layer 层创建三、层的设置(手动设置和代码设置)层的手动设置层的代码设置四、LayerMask 的...原创 2021-01-15 17:20:33 · 42416 阅读 · 6 评论 -
Unity 基础 之 Unity 简单调用 Python (传递多个参数并接收返回值)
Python脚本的参数传递调用python脚本直接使用shell或bat命令可以:python xxx/xxx/xxx/test.python1需要传递参数就变为:python xxx/xxx/xxx/test.python param1 param21只需要在python文件路径后面加上参数即可,用空格分割。在python脚本中接收参数需要用:import sysparam1 = sys.argv[1]param2 = sys.argv[2]1...原创 2020-11-21 11:18:50 · 14481 阅读 · 9 评论 -
Unity 基础 之 Visual Studio 编辑器环境单独下载安装,并与Unity关联(即是把VS设置为Unity默认打开编辑器)
Unity 基础 之 Visual Studio 环境单独下载安装,并与Unity关联(即是设置为Unity默认打开编辑器)一、简单介绍Unity中的一些基础知识点。本节介绍,在Unity 应用的时候,可能遗忘了安装 VS,或者想安装其他版本的VS供Unity使用;这里演示,单独安装 Visual Studio 工具,然后配置给 Unity 使用的方法;不过建议还是在 Unity 安装的使用一起安装。下载网址:https://visualstudio.microsoft...原创 2020-11-20 23:21:08 · 35884 阅读 · 6 评论 -
Unity UGUI 效果 之 ScrollView 轻松实现滚动(内容多少大小可以动态自动调整)预览效果
Unity UGUI 效果 之 ScrollView 轻松实现滚动(内容多少大小可以动态自动调整)预览效果目录Unity UGUI 效果 之 ScrollView 轻松实现滚动(内容多少大小可以动态自动调整)预览效果一、简单介绍二、实现原理三、注意实现四、效果预览五、实现步骤一、简单介绍UGUI,是Unity自带的 GUI 系统,有别于 NGUI;使用 UGUI 也能制作出比较酷炫的效果 。本节介绍,使用 UGUI 自带的 ScrollVi...原创 2020-10-04 09:51:23 · 12601 阅读 · 2 评论 -
Unity 基础 之 Visual Studio(VS) 中的 断点调试在 Unity 中的简单使用
Unity 基础 之 Visual Studio(VS) 中的 断点调试在 Unity 中的简单使用一、简单介绍Unity中的一些基础知识点。本节介绍,在 Unity 中,结合 Visual Studio ,进行断点调试的简单操作。二、实现方法1、VS 打开脚本,在需要调试的地方打上断点2、点击 附加到 Unity3、 如下的状态代码 附加成功,可以回到 Unity 运行场景,进行调试了4、回到 Unity,运行场景...原创 2020-10-02 12:32:20 · 5890 阅读 · 2 评论 -
Unity 基础 之 实现简单的Android移动端本地数据读取与写入封装(简单加密写入,解密读取 json 数据)
Unity 基础 之 实现简单的Android移动端本地数据读取与写入封装(简单加密写入,解密读取 json 数据)目录Unity 基础 之 实现简单的Android移动端本地数据读取与写入封装(简单加密写入,解密读取 json 数据)一、简单介绍二、相关知识说明三、注意实现四、效果预览(演示为UnityEditor,测试过移动端同理可行)五、实现步骤六、关键代码一、简单介绍Unity中的一些基础知识点。本节介绍,在 Unity 中,简...原创 2020-09-23 18:43:11 · 3742 阅读 · 0 评论 -
Unity 工具 之 获取 OpenWeatherMap 的天气(可以获取国内外的天气)的简单封装
Unity 工具 之 获取 OpenWeatherMap 的天气(可以获取国内外的天气)的简单封装目录Unity 工具 之 获取 OpenWeatherMap 的天气(可以获取国内外的天气)的简单封装一、简单介绍二、实现原理三、注意事项四、效果预览五、申请 OpenWeatherMap 账号,获得 API Key六、实现步骤七、关键代码一、简单介绍Unity中的一些基础知识点。本节介绍,在 Unity 中,简单实现使用 OpenWe...原创 2020-09-16 16:53:48 · 8920 阅读 · 0 评论 -
Unity 基础 之 简单实现鼠标点击(手机触屏)非 UI 处监听双击事件/长按事件的功能(内附判断点击在UI上还是非UI上的方法)
Unity 基础 之 简单实现鼠标点击(手机触屏)非 UI 处监听双击事件/长按事件的功能一、简单介绍Unity中的一些基础知识点。本节介绍,在 Unity 中,简单实现当鼠标或者手机手机触屏在不是 UI 元素上面的双击事件和长按事件的功能,便于后期使用,有不对,欢迎指正。二、实现原理1、监听 EventSystem.current.IsPointerOverGameObject() == false (PC )或者 EventSystem.current.I...原创 2020-09-10 21:53:46 · 6578 阅读 · 1 评论 -
Unity 基础 之 实现简单监听晃动(摇一摇)手机设备震动手机设备的事件的功能
Unity 基础 之 实现简单监听晃动(摇一摇)手机设备震动手机设备的事件的功能目录Unity 基础 之 实现简单监听晃动(摇一摇)手机设备震动手机设备的事件的功能一、简单介绍二、知识点三、实现原理四、注意事项五、实现步骤六、关键代码一、简单介绍Unity中的一些基础知识点。本节介绍,在 Unity 种,实现监听手机晃动(摇一摇)触发的事件,并震动手机的功能。二、知识点Unity简化了重力感应的开发,通过访问Input...原创 2020-09-10 16:03:46 · 3404 阅读 · 0 评论 -
Unity UGUI 效果 之 Scroll 根据内容多少,动态实现鼠标滑动滚动浏览预览( Scrollbar + ScrollRect + XXLayoutGroup)
Unity UGUI 效果 之 Scroll 根据内容多少,动态实现鼠标滑动滚动预览( Scrollbar + ScrollRect + XXLayoutGroup)目录Unity UGUI 效果 之 Scroll 根据内容多少,动态实现鼠标滑动滚动预览( Scrollbar + ScrollRect + XXLayoutGroup)一、简单介绍二、实现原理三、注意实现四、效果预览五、实现步骤六、关键代码一、简单介绍UGUI,是Unit...原创 2020-08-28 11:00:28 · 3717 阅读 · 1 评论 -
Android Studio 基础 之 获取系统Calendar 日历日程(可获得当天以后可设定天数范围内的日历日程) (涉及指定日期时间判断是星期几的方法使用)的方法整理
Android Studio 基础 之 获取系统Calendar 日历日程 (涉及指定日期时间判断是星期几的方法使用)的方法整理目录Android Studio 基础 之 获取系统Calendar 日历日程 (涉及指定日期时间判断是星期几的方法使用)的方法整理一、简单介绍二、实现原理三、注意实现四、效果预览五、实现步骤六、关键代码一、简单介绍Android 开发中的一些基础操作,使用整理,便于后期使用。本节介绍,Android 开发中,...原创 2020-08-21 18:43:28 · 12376 阅读 · 3 评论 -
Android Studio 基础 之 获取 Wifi 的状态,设置 Wifi 的开关状态,并监听 Wifi 的状态变化方法整理
Android Studio 基础 之 获取 Wifi 的状态,设置 Wifi 的开关状态,并监听 Wifi 的状态变化方法整理目录Android Studio 基础 之 获取 Wifi 的状态,设置 Wifi 的开关状态,并监听 Wifi 的状态变化方法整理一、简单介绍二、实现原理三、注意事项四、效果预览五、实现步骤六、关键代码一、简单介绍Android 开发中的一些基础操作,使用整理,便于后期使用。本节介绍,Android 开发中,...原创 2020-08-21 17:41:36 · 5119 阅读 · 2 评论 -
Android Studio 基础 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理
Android Studio 基础 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理目录Android Studio 基础 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理一、简单介绍二、实现原理三、注意事项四、效果预览五、实现步骤六、关键代码一、简单介绍Android 开发中的...原创 2020-08-21 17:18:56 · 5936 阅读 · 1 评论 -
Android Studio 基础 之 获取各个音量的最大值、最小值、以及当前音量值,并设置音量值,监听音量变化的方法整理
Android Studio 基础 之 获取各个音量的最大值、最小值、以及当前音量值,并设置音量值的方法整理目录Android Studio 基础 之 获取各个音量的最大值、最小值、以及当前音量值,并设置音量值的方法整理一、简单介绍二、实现原理三、使用注意四、效果预览五、实现步骤,六、关键代码一、简单介绍Android 开发中的一些基础操作,使用整理,便于后期使用。本节介绍,Android 开发中,获取手机设备的各种音量值,最大最小当前...原创 2020-08-21 16:55:53 · 4532 阅读 · 1 评论 -
Android Studio 基础 之 一键快速实现一个类的 构造函数、getter、Setter 和 toString() 函数的快捷方式
Android Studio 基础 之 一键快速实现一个类的 构造函数、getter、Setter 和 toString() 函数的快捷方式目录Android Studio 基础 之 一键快速实现一个类的 构造函数、getter、Setter 和 toString() 函数的快捷方式一、简单介绍二、实现原理三、操作界面四、实例操作一、简单介绍Android 开发中的一些基础操作,使用整理,便于后期使用。本节介绍,在Android 编程中,新建了...原创 2020-08-20 21:42:39 · 3446 阅读 · 0 评论 -
Unity 基础 之 IDragHanlder 简单实现 UGUI 元素随着鼠标移动,拖动的效果
Unity 基础 之 IDragHanlder 简单实现 UGUI 元素随着鼠标移动,拖动的效果一、简单介绍Unity中的一些基础知识点。本节介绍,使用 IDraHandler ,简单的就实现 UGUI 元素,随着鼠标的移动而移动的效果。二、实现原理1、IBeginDragHandler, IDragHandler, IEndDragHandler 三个接口,进行实现拖拽的功能2、RectTransformUtility.ScreenPointTo...原创 2020-07-18 10:45:10 · 5212 阅读 · 1 评论 -
Unity 基础 之 OnMouse 简单实现 GameObject 和 UGUI 元素随着鼠标移动,拖动的效果
Unity 基础 之 OnMouseDown 简单实现 GameObject 和 UGUI 元素随着鼠标移动,拖动的效果一、简单介绍Unity中的一些基础知识点。本节介绍,使用 OnMouseDown 函数,简单的就实现游戏物体或者UI,随着鼠标的移动而移动的效果。二、实现原理1、 OnMouseDown 监控点中 游戏物体或者 UI2、...原创 2020-07-15 09:28:52 · 2889 阅读 · 0 评论 -
Unity 基础 之 C# 正则表达式,以及一些常用的匹配方式汇总
这是从网上找来的,收藏一下备用,用到之处可以节省不少时间哦!只能输入数字: "^[0-9]*$" 。只能输入n位的数字:"^\d{n}$"。只能输入至少n位的数字:"^\d{n,}$"。只能输入m~n位的数字:"^\d{m,n}$"。只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。...原创 2019-08-05 20:18:52 · 3781 阅读 · 0 评论 -
Unity 基础之 实现动态加载网络端、PC端和 Android 端指定路径下的图片的简单方法
路径Unity 基础之 实现动态加载网络端、PC端和 Android 端指定路径下的图片的简单方法目录路径Unity 基础之 实现动态加载网络端、PC端和 Android 端指定路径下的图片的简单方法一、简单介绍二、实现原理三、注意事项四、效果预览五、实现步骤六、关键代码一、简单介绍Unity中的一些基础知识点,便于后期查看学习。本节介绍,如何动态加载网络上,电脑上或者Android手机上指定路径的图片的简单方式,方法不唯一,仅供参考。...原创 2020-07-03 09:19:28 · 2066 阅读 · 1 评论 -
Unity Mecanim动画系统 之 动画层(Layers)和 动画遮罩(Avatar Mask)的简单使用
Unity Mecanim动画系统 之 动画层(Layers)和 动画遮罩(Avatar Mask)的简单使用目录Unity Mecanim动画系统 之 动画层(Layers)和 动画遮罩(Avatar Mask)的简单使用一、简单介绍二、动画层 和 动画遮罩1、为什么动画中会有层的概念2、如何使用层动画3、注意点4、创建动画遮罩的两种方式三、效果预览四、实现步骤五、关键代码:一、简单介绍Unity中的一些基础知识点。便于后期开发使用。Un..原创 2020-05-11 22:26:00 · 7393 阅读 · 0 评论 -
Unity Mecanim动画系统 之 动画混合树(Blend Trees)的简单使用
Unity Mecanim动画系统 之 动画混合树(Blend Trees)的简单使用目录Unity Mecanim动画系统 之 动画混合树(Blend Trees)的简单使用一、简单介绍二、官网的 Blend Trees 的解释1)Blend Trees2)1D Blending3)2D Blending三、注意事项四、效果预览五、实现步骤一、简单介绍Unity中的一些基础知识点。便于后期开发使用。Unity动画系统,也称为“Mecanim”..原创 2020-05-10 14:45:26 · 3302 阅读 · 0 评论 -
Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置、方向偏转 (根骨骼动画)的问题
Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置、方向偏转(根骨骼动画) 的问题目录Unity Mecanim动画系统 之 解决模型有些动画播放后发生的位置、方向偏转 的问题一、简单介绍二、实现原理三、效果预览四、实现步骤一、简单介绍Unity中的一些基础知识点。便于后期开发使用。Unity动画系统,也称为“Mecanim”,提供了以下功能: 简单的工作流程,设置动画的所有元素,包括对象,角色和属性。 支...原创 2020-05-10 10:17:40 · 10227 阅读 · 0 评论 -
Unity Mecanim动画系统 之 模型导入材质(不可编辑) 或 贴图丢失(白模)的问题简单解决
Unity Mecanim动画系统 之 模型导入材质(不可编辑) 或 贴图丢失的问题简单解决目录Unity Mecanim动画系统 之 模型导入材质(不可编辑) 或 贴图丢失的问题简单解决一、简单介绍二、模型导入Unity出现的材质不可编辑,或者贴图丢失情况一、简单介绍Unity中的一些基础知识点。便于后期开发使用。Unity动画系统,也称为“Mecanim”,提供了以下功能: 简单的工作流程,设置动画的所有元素,包括对象,角色和属性。 支持导入...原创 2020-05-09 21:25:52 · 19813 阅读 · 0 评论 -
Unity 基础 之 List Sort 升降排序,List 对多数按权重排序,List 对自定义类 排序
Unity 基础 之 List Sort 升降排序,List 对多数按权重排序,List 对自定义类 排序目录Unity 基础 之 List Sort 升降排序,List 对多数按权重排序,List 对自定义类 排序一、简单介绍二、基本概念三、List Sort 使用举例1)List 基础数比较2)List 对数权重比较3)List 自定义类的字段...原创 2020-05-06 22:42:12 · 10125 阅读 · 1 评论 -
Unity 图灵Turning 之 在Unity中实现图灵 聊天机器人 简单聊天的功能
二、图灵官网关于在线聊天机器人的接入介绍官网 http://www.tuling123.com/网址:https://www.kancloud.cn/turing/www-tuling123-com/7182271、接口说明API V2.0是基于图灵机器人平台语义理解、深度学习等核心技术,为广大开发者和企业提供的在线服务和开发接口。目前API接口可调用聊天对话、语料库、技能三大模块的语料:聊天对话是指平台免费提供的近10亿条公有对话语料,满足用户对话娱乐需求;语料库是指用户在平台原创 2020-04-05 22:08:05 · 2248 阅读 · 3 评论 -
Unity 百度SDK 之 在线语音合成 TTS WebAPI 功能的实现
Unity 百度SDK 之 在线语音合成识别 TTS WebAPI 功能的实现目录Unity 百度SDK 之 在线语音合成识别 TTS WebAPI 功能的实现一、简单介绍二、百度官网关于在线语音合成的介绍三、 在线识别 Access Token 的获取四、注意事项五、效果预览六、实现步骤七、关键代码一、简单介绍Unity 工具类,自己整...原创 2020-04-05 21:38:20 · 2500 阅读 · 1 评论 -
Unity 百度SDK 之 在线语音识别ASR WebAPI 功能的实现
百度短语音识别可以将60秒以下的音频识别为文字。适用于语音对话、语音控制、语音输入等场景。 接口类型:通过 REST API 的方式提供的通用的 HTTP 接口。适用于任意操作系统,任意编程语言 接口限制:需要上传完整的录音文件,录音文件时长不超过60秒。浏览器由于无法跨域请求百度语音服务器的域名,因此无法直接调用API接口。 支持音频格式:pcm、wav、amr、m4a 音频编码要求:采样率 16000,16bit 位深,单声道(音频格式查看及转换) 语言原创 2020-04-05 20:43:36 · 1681 阅读 · 1 评论 -
Unity 基础 之 Microphone 麦克风的简单方便调用的封装
Unity 基础 之 Microphone 麦克风的简单方便调用的封装目录Unity 基础 之 Microphone 麦克风的简单方便调用的封装一、简单介绍二、实现原理三、注意事项四、实现步骤六、关键代码一、简单介绍Unity中的一些基础知识点。本节介绍,在Unity中调用 麦克风,进行了录音说话,并且播放出来的功能封装,仅供参考。...原创 2020-04-04 12:23:06 · 5112 阅读 · 0 评论 -
Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据,并解析读取数据
Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据目录Unity 基础 之 xml 使用 Office Excel 轻松编辑保存 xml 数据一、简单介绍二、实现原理三、注意事项四、效果预览五、实现步骤六、关键代码一、简单介绍Unity中的一些基础知识点。便于后期开发使用。本节介绍,如何使用 Offi...原创 2020-03-11 21:01:28 · 1988 阅读 · 1 评论 -
Unity 基础 之 List 作为参数传递的值变化的三种情况注意
Unity 基础 之 List 作为参数传递的值变化的三种情况注意目录Unity 基础 之 List 作为参数传递的值变化的三种情况注意一、简单介绍二、基本概念三、三点注意四、代码示例说明三点注意1、测试代码2、运行结果一、简单介绍Unity中的一些基础知识点。本片介绍 List 在作为 参数传递的时候的一些之变化情况。二、基本概念...原创 2020-03-08 23:45:15 · 3082 阅读 · 0 评论 -
Unity 基础 之 新创建脚本的时候自动添加头部格式模板注释/开始处文件描述(文件头规范)
Unity 基础 之 新创建脚本的时候自动添加头部格式/开始处文件描述(文件头规范)目录Unity 基础 之 新创建脚本的时候自动添加头部格式/开始处文件描述(文件头规范)一、简单介绍二、实现原理三、注意事项四、效果预览五、实现步骤六、脚本自动添加文件描述(文件头)模板(注意文件名:81-C# Script-NewBehaviourScript.cs.txt)...原创 2020-02-24 21:14:07 · 1801 阅读 · 0 评论 -
Unity 基础 之 Litjson 简单进行 json 创建与解析
Unity 基础 之 Litjson 简单进行json 创建与解析目录Unity 基础 之 Litjson 简单进行json 创建与解析一、简单介绍二、实现原理三、注意事项四、效果预览五、实现步骤六、关键代码一、简单介绍Unity中的一些基础知识点。Unity游戏开发中,进行数据封装是很常见的操作,这里简单介绍使用 litjson ,进...原创 2020-01-16 09:05:46 · 3774 阅读 · 0 评论 -
Unity 基础 之 获取代码执行的当前 类、当前函数、当前代码行数、当前场景、当前挂载的游戏物体 等
Unity 基础 之 获取代码执行的当前 类、当前函数、当前代码行数、当前场景、当前挂载的游戏物体 等目录Unity 基础 之 获取代码执行的当前 类、当前函数、当前代码行数、当前场景、当前挂载的游戏物体 等一、简单介绍二、实现原理三、注意事项四、效果预览五、关键代码一、简单介绍Unity中的一些基础知识点。在游戏开发中,获取代码执行的当前...原创 2020-01-12 15:30:28 · 1560 阅读 · 1 评论 -
Unity 工具类 之 BlendShape 捏脸的实现
Unity 工具类 之 BlendShape 捏脸的实现目录Unity 工具类 之 BlendShape 捏脸的实现一、简单介绍二、实现原理三、注意事项四、效果预览五、实现步骤六、代码七、参考工程一、简单介绍Blender 是一款开源的跨平台全能三维动画制作软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决...原创 2020-01-10 22:46:03 · 15412 阅读 · 2 评论 -
Unity 工具类 之 Blender 的下载和简单使用(为捏脸做准备)
Unity 工具类 之 Blender 的下载和使用(为捏脸做准备)目录Unity 工具类 之 Blender 的下载和使用一、简单介绍二、下载地址三、安装四、简单使用1、设置成中文界面2、快捷操作3、物体模式(Object Mode)/编辑模式(Edit Mode) 切换五、捏脸模型制作一、简单介绍Blender 是一款开源的跨平...原创 2020-01-10 19:16:29 · 4613 阅读 · 0 评论 -
Unity 屏幕特效 之 基础知识简介,屏幕灰度特效实现
Unity 屏幕特效 之 基础知识简介,屏幕灰度特效实现目录Unity 屏幕特效 之 基础知识简介,屏幕灰度特效实现一、前言:二、函数介绍三、Graphics.Blit()函数四、MonoBehaviour.OnRenderImage(RenderTexture,RenderTexture) 函数五、Shader 脚本模板(仅供参考)六、屏幕特效示例七、示...原创 2019-11-29 17:19:03 · 1018 阅读 · 0 评论 -
Git(Gitee)之 SSH环境部署,并使用 SSH 地址下载代码
目录Git(Gitee)之 SSH环境部署,并使用SSH 地址下载代码一、GIt二、下载安装Git 三、SSH 配置四、SSH 地址下载代码Git(Gitee)之 SSH环境部署,并使用SSH 地址下载代码一、GItGit(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Li...原创 2019-10-29 11:34:30 · 7401 阅读 · 3 评论 -
Unity 3D 开发中需要掌握的数学基础知识概要整理(一)
目录Unity 3D 开发中需要掌握的数学基础知识概要整理(一)学习目的:一、3D 数学基础知识介绍二、Unity 中的几种常用坐标系三、向量的基本概念Unity 3D 开发中需要掌握的数学基础知识概要整理(一)学习目的:3D数学:研究在3D几何世界中的数学问题。被广泛的应用于使用计算机来模拟3D世界的领域,比如图形学,游戏,虚拟现实和动画等。...原创 2019-10-28 17:28:53 · 4432 阅读 · 0 评论
分享