unity 我的世界鼠标点击生成物品思路

本文介绍了一种在Unity中实现类似我的世界游戏中,通过鼠标点击生成方块的思路。作者对比了使用射线和碰撞器两种方法,发现碰撞器在处理大量方块时性能更优。通过屏幕坐标转世界坐标,鼠标点击检测碰撞,以及两个脚本(方块生成和碰撞检测)的配合,实现了鼠标点击生成方块的功能。强调了理解思路并解决细节问题的重要性。
摘要由CSDN通过智能技术生成

unity 我的世界鼠标点击生成物品思路

思路
根据鼠标点击位置生成方块,
一开始我是想用射线的。后面经过实践,感觉用碰撞器,要比射线好得多。
实践是检验真理的唯一标准,
性能:举例:我在生成“我的世界”类似的地图时,一开始不知道用柏林噪声函数,用的随机数去边填空的方法,一般而言,都要生成5万个方块儿。因为想平滑地图原因。我给每一个方块儿都加了一个脚本,计算碰撞。
下面是正题:我原本以为碰撞非常消耗性能,照理说游戏开始时几万个方块儿同时计算碰撞,肯定会卡个几秒。但是出乎意料基本跟没加脚本加载速度差不多。并且我用任务管理器,看了CPU的使用率,也基本差不多。
不信的朋友可以请自试一下。事后我恍然大悟,这就是为什么你在手机在玩“我的世界”时,有几十万个方块儿,但是并不卡。但是换位思考一下,如果你放过几十万条射线。你的手机说不定卡成渣!
射线生成时是一个变量,但是碰撞机是一个定量。
当我写了一个脚本鼠标点击生成一条射线时。CPU又猛的跳了一个9%。只是一条啊,可想而知,就算有误差,这也绝对不容忽视。
扯远了!
1.屏幕坐标转世界坐标
2.鼠标点击时检测有无碰撞体
3.没有则生成方块,
需要2个脚本,①方块的生成脚本②检测有无碰撞体的脚本,
主要说下②创一个空物体,有触发器,跟随鼠标移动,脚本建一个变量,发生碰撞,则变量改变,
①中,只需访问②中变量,变量合适,则点击可以生成物体,
重要的是思路!其中的细节要靠自己!,大佬匆喷,
在这里插入图片描述
在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Monse : MonoBehaviour
{
   
    public Camera Cam;
    public GameObject block;
    public int ss = 20;
    public Text ssc;</
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值