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;</