Unity实现类似我的世界(Minecraft)的创建物体以及销毁物体的功能
来源:互联网 发布:python3 网络编程 编辑:程序博客网 时间:2024/04/29 21:59
最近想做一个类似Minecraft的游戏,我觉得最基本也是有难度的是点击在一个已有Cube的某侧,然后在该物体相应的一侧生成Cube
下面是我学习到的生成的方法,但是有一个地方我觉得多余,把核心代码贴下来和大家分享和交流
void Shoot1() //点击鼠标左键销毁Cube,右键生成Cube
{ //生成从摄像机到鼠标点击位置的射线 RaycastHit hit = new RaycastHit(); Ray ray = new Ray(); ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Input.GetMouseButtonDown(1)) { if (Physics.Raycast(ray, out hit)) { if (hit.collider.gameObject.tag == "Block_1" || hit.collider.gameObject.tag == "Block_2" || hit.collider.gameObject.tag == "Block_3" && Vector3.Distance(hit.transform.position, transform.position) < 5 && Vector3.Distance(hit.transform.position, transform.position) > 1) {//如果射线碰到需要在旁边生成Cube的Cube <span style="color:#ff0000;"> blockTemp = hit.collider.transform.position;//被点击的物体的位置 ppTemp = new Vector3(0, 1, 0);//??? blockNormalTemp = hit.normal.normalized;//规范化,需要生成的目标物体在被点击的物体的哪一侧 allTemp = blockTemp + blockNormalTemp + ppTemp;//为什么要加上ppTemp finalTemp = allTemp - new Vector3(0, 1, 0);//最终的位置 Instantiate(blocks[blockChoosen], finalTemp, Quaternion.identity);//生成</span> } } } if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out hit)) { if (hit.collider.gameObject.tag == "Block_1" || hit.collider.gameObject.tag == "Block_2" || hit.collider.gameObject.tag == "Block_3" && Vector3.Distance(hit.transform.position, transform.position) < 5 && Vector3.Distance(hit.transform.position, transform.position) > 0) { Destroy(hit.collider.gameObject); } } }}
我不清楚那个ppTemp有什么用,发现将它改为(0,0,0)也可以正常生成,
以上的注释只是我的想法,有注释错的地方希望大家能够指证
效果如下
2 0
- Unity实现类似我的世界(Minecraft)的创建物体以及销毁物体的功能
- Unity-->实现物体的移动
- Unity3D MineCraft 我的世界 类似游戏的地形编辑器
- Unity学习笔记-2D物体的创建与销毁等基本操作
- 【Unity】关于精灵物体创建的看法
- Unity Minecraft 我的世界 核心渲染机制的简单实现 一个面的渲染
- Unity3D MineCraft 我的世界 用Unity3D制作类似MineCraft我的世界的游戏:各种树
- 我的世界 Unity3D MineCraft 用Unity3D制作类似MineCraft我的世界的游戏 洞穴算是完成了
- 我的世界 Unity3D MineCraft 用Unity3D制作类似MineCraft我的世界的游戏 正经梳理一下开发01
- [Unity]物体坐标系和世界坐标系的方向变量以及说明
- Unity中物体抛物线的实现方式
- Unity中物体抛物线的实现
- Unity物体跟随鼠标的实现
- Unity中物体抛物线的实现方式
- unity 学习 双击一个物体的实现
- 我的Unity(3)一点一滴 实现物体移动和旋转的方法总结(1)
- unity shader 根据世界坐标,改变物体显示的颜色
- Unity中拖动的简单实现(UGUI以及3D物体)
- 多态
- 在编程这条路上,我依旧走着...
- 2016/09/26 补25 12:51
- 源码-JavaScript&jQuery交互式前端开发-第2章-JavaScript基础指令-使用变量来存储数字
- 数据库
- Unity实现类似我的世界(Minecraft)的创建物体以及销毁物体的功能
- 异常
- 进程间的通信方式
- 面向对象
- Windows Server 2008 R2远程桌面服务配置和授权激活
- 电子多媒体实验室android端调取网络接口标准
- 线程同步和死锁
- 重载 与构造
- servlet知识