- 博客(47)
- 资源 (1)
- 收藏
- 关注
原创 unity action委托举例
/ 假设这是一个激活游戏对象的操作。// 调用委托,会依次执行Method1、Method2和Method3。// 这里可以添加其他操作,比如修改游戏对象的状态。// 假设有一个AudioSource组件。// 假设有一个Renderer组件。// 创建委托实例并添加方法。// 方法2:改变游戏对象的颜色。// 方法1:打印日志。// 方法3:播放音效。
2025-01-06 16:48:51
336
原创 unity中关于平滑移动
这些是Unity中常用的一些平滑移动函数的示例,每个函数都有其特定的用途和适用场景。你可以根据具体需求选择合适的函数来实现平滑移动效果。// 当前速度(初始为零向量)private Transform cameraTransform;// 摄像机的Transform组件。// 目标位置的Transform组件。// 使用Mathf.SmoothDamp函数来计算平滑移动的目标位置。// 获取摄像机的Transform组件。// 将摄像机移动到目标位置。// 获取当前摄像机的位置。
2025-01-06 16:32:54
439
原创 unity中 out ref params 的区别与使用环境
ref是双向的,有进有出:参数在进入方法时携带初始值,方法可以修改参数的值并返回给调用者。out是单向的,只出不进:参数在进入方法时不需要携带初始值,方法必须为参数赋值并返回给调用者。这两种参数修饰符适用于不同的场景:当你需要一个方法修改传入的参数值时,使用ref;当你需要一个方法返回多个值时,使用out。params。
2024-07-31 15:10:58
1154
原创 unity中 UI物体跟随鼠标移动,根据鼠标滑动方向改变物体方向在X轴。 移动端同样实现
/ 设置 z 值为相机的近剪切面。// 设置 z 值为相机的近剪切面。// 改变UI物体的左右方向。
2024-07-11 11:30:27
1096
原创 unity里鼠标位置是否在物体上。
根据你的具体需求,选择适合的检测方法。如果你的图片在Canvas上,推荐使用第一种或第二种方法;如果你的图片是3D对象,推荐使用第三种方法。如果你的图片是3D对象,使用Collider和Physics Raycast可以更容易实现。如果你的图片是在UI Canvas上,可以使用Raycast来检测鼠标点击是否在图片上。另外一种方法是直接使用。来进行坐标转换和检测。
2024-06-27 11:20:03
1689
原创 unity中浮点数只保留一位小数
如果你想在 Unity 中保留浮点数的一位小数,你可以使用ToString()方法并指定格式化字符串,或者使用方法来四舍五入到一位小数。
2024-05-07 11:21:31
1624
原创 unity生成随机表元素间隔距离相同的点
/// 检查点的位置是否超出范围,如果是则重新随机位置。// 检查新位置是否超出范围,如果是则重新随机位置。// // 随机生成点的位置。// 移动生成的点,确保相邻点之间的间距。// 随机生成点的位置。// 随机生成点的位置。// 生成指定数量的点。
2024-04-29 10:09:38
652
1
原创 unity中判断方向 用 KeyVertical ,KeyHorizontal 判断ui物体的 方向
if (direction.magnitude > 0.1f) // 可以根据需要调整这个阈值。// 假设 UI 物体在竖直方向上为 Y 轴,水平方向上为 X 轴。// 对角度进行判断,然后做出相应的操作。Debug.Log("向右");Debug.Log("向上");Debug.Log("向左");Debug.Log("向下");
2024-03-28 15:22:26
577
原创 unity中屏幕坐标转UI坐标
/ 如果Canvas的渲染模式为Screen Space - Overlay,Camera设置为null。// 目标UI父物体的RectTransform。// 获取鼠标位置(屏幕坐标)Debug.Log("UI坐标: " + localPoint);// 将屏幕坐标转换为UI坐标。
2024-03-27 09:50:19
1527
原创 unity中 鼠标按下移动端与pc端的位置
if (Input.GetMouseButtonDown(0)) { Vector2 V = Input.touchCount > 0 ? Input.GetTouch(0).position : new Vector2(Input.mousePosition.x, Input.mousePosition.y); }
2024-03-27 09:29:12
356
原创 IsPointerOverGameObject()在移动端检测失败
/方法三 通过画布上的 GraphicRaycaster 组件发射射线。//获取画布上的 GraphicRaycaster 组件。//使用方法三:传递画布组件,传递触摸手势坐标。// GraphicRaycaster 发射射线。//使用方法一:传递触摸手势 ID。//使用方法二:传递触摸手势坐标。//将点击位置的屏幕坐标赋值给点击事件。//将点击位置的屏幕坐标赋值给点击事件。//是 2D UI 的位置,非 3D 位置。//方法二 通过UI事件发射射线。//向点击处发射射线。
2024-03-26 16:22:49
931
原创 C# 列表去重
if (rand.Count == 0) //当列表为0时,重新增加列表。if (ran!=上一次结果 { }方法2:取值列表每一次不一样的值。
2024-03-20 16:48:26
282
原创 视口坐标转换成Canvas下本地坐标与shader显示在3D物体前
/ 将屏幕坐标转换为 UI 中的 Canvas 坐标。// 使用主摄像机的方法将视口坐标转换为屏幕坐标。// 打印 UI 中的 Canvas 坐标。if (v == -1)//正常屏幕。shader显示在3D物体前,先转化成视口坐标。// 设置一个示例的视口坐标。视口坐标转换成Canvas下本地坐标。
2024-03-14 17:01:22
533
原创 unity中摄像机跟随
Vector3 desiredPosition = circle.position; Vector3 smoothedPosition = Vector3.Lerp(mCamera.transform.position, desiredPosition, smoothSpeed); mCamera.transform.position = smoothedPosition;
2024-03-06 16:56:59
741
原创 Unity中,activeInHierarchy 和 activeSelf
【代码】Unity中,activeInHierarchy 和 activeSelf。
2024-02-29 09:44:43
2226
原创 unity中Canvas下射线检测
Debug.Log("射线击中了物体: " + hit.collider.gameObject.name);// RaycastHit 用于存储射线击中的信息。// 从摄像机位置向鼠标点击的屏幕位置发射射线。// 在击中点生成一个标记(可选)// 输出击中物体的信息。// 如果射线击中了物体。// 检测鼠标左键点击。
2024-02-28 16:47:53
784
原创 unity中实现3D物体在UI前方
将这个属性设置为场景中的主相机或其他你想要用来渲染UI的相机。你可以在Hierarchy视图中右键点击Canvas,然后选择UI > Raw Image。你可以在Hierarchy视图中右键点击,选择UI > Canvas,或者在创建菜单中找到。这个Texture将会是你想要显示在UI上的3D物体的纹理。在Unity中,如果你想要将3D物体显示在UI的前方,可以通过Canvas和RawImage来实现。在Canvas中,你可以调整UI元素的层级顺序,确保RawImage在其他UI元素之上。
2024-02-19 10:14:55
2181
原创 unity中 canvas下物体的朝向跟随
/ // 获取目标物体位置并使当前物体朝向目标物体。// 计算朝向角度 其中90f根据实际需求调整。// 获取目标物体的方向。// 更新UI物体的朝向。
2024-01-04 11:23:57
682
原创 unity中 transform.up与Vector3.up
都代表世界坐标系中的上方向,但它们之间有一些细微的区别。简而言之,如果你想要表示物体自身坐标系中的上方向,使用。如果你想要表示世界坐标系中的上方向,使用。选择使用哪一个取决于你的具体需求。
2024-01-04 11:00:18
1828
原创 unity中旋转 transform.Rotate
transform.Rotate(Vector3.up, Time.deltaTime* 45.0f, Space.Self);Space.Self:Space.World:
2024-01-04 10:59:08
755
原创 Timer类定时器
/ 添加 Elapsed 事件处理程序 timer.Elapsed += OnTimedEvent;//类似设置间隔时间的Update。// 创建一个 Timer 实例,设置间隔为 1000 毫秒(1秒)// 设置 AutoReset 属性为 true(默认值)
2023-12-22 15:46:49
398
原创 Unity中父物体里子物体的层级设置与读取
/ 将当前对象的兄弟索引设置为0,即成为父级Transform的第一个子对象。// 将当前对象设置为其父级Transform中的第一个一个子对象。// 将当前对象设置为其父级Transform中的最后一个子对象。
2023-12-20 17:41:00
1132
原创 unity中随机种子 Random.InitState();
/ 使用随机种子初始化随机数生成器。保证随机出来Random.Range的值是一样。// 生成一些随机数并打印它们。
2023-12-20 15:11:48
905
原创 C# String常用方法
/ 使用空格分隔符连接数组元素 string result = string.Join(" ", words);// 使用逗号作为分隔符拆分字符串 string[] words = sentence.Split(',');// 返回 ["Hello,", "C#"]string replaced = str.Replace("C#", "World");获取字符串的子字符串。
2023-12-18 10:15:04
398
原创 unity lambda 表达式中参数传入变值
/ 创建局部变量并赋值 sljc.GetChild(i).GetComponent<Toggle>().onValueChanged.AddListener((value) => { OnValueChange(1, localI, value);为了解决这个问题,你可以在循环内创建一个局部变量,将循环变量的值赋给这个局部变量,然后在 lambda 表达式中使用该局部变量。这样,每次迭代都会有一个新的局部变量,而不是共享同一个循环变量。的当前值,而不是在 lambda 表达式创建时的值。
2023-12-07 10:45:41
503
原创 unity中 使用IDragHandler拖动交换子物体
EventSystem.current.RaycastAll(eventData, results);
2023-12-05 14:13:59
2144
原创 unity 日志工具类
m_StreamWriter.Write($"\n\n\n --------======{DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒")}======--------\n");//判断文件大小,如果文件超过大小,则备份文件并重新开始写文件。//检测文件夹中有多少文件,超过十个就删掉之前的。/// 日志文件模块,使用多线程来进行写日志文件。#region 私有。
2023-11-16 11:37:43
118
原创 unity日志打印txt
/ 检查文件是否存在,如果不存在,则创建文件。// 设置文件路径,可以根据需要修改。// 创建文件并关闭文件句柄。// 在销毁时取消日志回调。// 写入日志信息到文件。
2023-11-15 17:43:56
252
原创 Unity3D中使用UGUI实现省市区三级联动
using UnityEngine;using System.IO;using System.Text;using UnityEngine.UI;using System.Collections.Generic;public class GetAddress: MonoBehaviour{ public Dropdown province; public Dropdow...
2023-11-15 09:17:23
556
Unity3D中使用UGUI实现省市区三级联动+数据(2016.10)
2018-08-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人