简单的方块堆叠实现
来源:互联网 发布:拜发试剂盒软件 编辑:程序博客网 时间:2024/06/05 04:17
if (Input.GetMouseButtonDown(0))
{
Ray ray = GetComponent<Camera>().ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
if (hit.transform.gameObject.tag.CompareTo("Grid") == 0) //点击方块
{
cube = hit.transform.gameObject; //获得点击的对象
GameObject curgo = Selects(); //获得需要生成的对象
Debug.Log(hit.transform.gameObject.name);
//editPoints.Add(hit.transform.localPosition);
editObjs.Add(curgo); //将需要生成的对象加入列表
GameObject go = CreatNewObj(); //从列表中取出并生成对象
go.transform.position = hit.transform.position;
go.transform.rotation = hit.transform.rotation;
Vector3 direction = hit.point - hit.transform.position; //第一个点是点击的位置,第二个点是点击对象世界坐标
//判断点击的面朝向
if ((Mathf.Abs(direction.x)>Mathf.Abs(direction.y)) && (Mathf.Abs(direction.x)>Mathf.Abs(direction.z)))
{
if (direction.x > 0) {
go.transform.Translate (Vector3.right); //世界坐标 移动一个单位
}
else if(direction.x < 0){
Debug.Log ("x -");
go.transform.Translate(Vector3.left);
// go.transform.Rotate(new Vector3(0, 0, 90));
//cube.transform.position = hit.transform.position - hit.transform.right;
}
}
if((Mathf.Abs(direction.y)>Mathf.Abs(direction.x)) && (Mathf.Abs(direction.y)>Mathf.Abs(direction.z)))
{
if (direction.y > 0)
{
Debug.Log("y +");
go.transform.Translate (Vector3.up);
// go.transform.Rotate(new Vector3(0,0,0));
//Debug.Log (cube.transform.position+"positiony");
//cube.transform.position = hit.transform.position + hit.transform.up;
}
else if(direction.y <0){
Debug.Log ("y -");
go.transform.Translate(Vector3.down);
// go.transform.Rotate(new Vector3(180, 0, 0));
}
}
if((Mathf.Abs(direction.z)>Mathf.Abs(direction.y)) && (Mathf.Abs(direction.z)>Mathf.Abs(direction.x)))
{
if (direction.z > 0) {
Debug.Log ("z +");
go.transform.Translate (Vector3.forward);
// go.transform.Rotate(new Vector3(90, 0, 0));
//Debug.Log (cube.transform.position+"positionz");
//cube.transform.position = hit.transform.position + hit.transform.forward;
} else if(direction.z <0){
Debug.Log ("z -");
go.transform.Translate(Vector3.back);
// go.transform.Rotate(new Vector3(-90, 0,0));
//cube.transform.position = hit.transform.position - hit.transform.forward;
}
}
}
_editObjs.Clear();
}
}
- 简单的方块堆叠实现
- 简单介绍堆叠的编码器
- Highcharts 实现堆叠图下钻两层的方法
- 简单的使用键盘控制方块移动
- hcharts实现堆叠柱形图
- hcharts实现堆叠柱形图
- JS实现方块颜色的渐变
- 自由堆叠的屋顶
- 堆叠的通知
- 堆叠
- 堆叠
- css实现照片堆叠效果
- 利用Echarts实现堆叠柱状图
- Android堆叠式布局实现
- canvas实现方块运动
- openGL es 教程翻译4(实现一个旋转的方块)
- verilog实现的VGA显示自反弹移动小方块
- 俄罗斯方块类的实现以及方块在画布中显示
- zzu数学 实验一泰勒级数
- git上传大文件-http无法满足
- ARM概念梳理:Architecture, Core, CPU,SOC
- GCC编译错误 There are no arguments to 'X' that depend on a template parameter, so a declaration of 'X' m
- JosephusProblem未简化版
- 简单的方块堆叠实现
- 仿美团实现地域选择和城市列表
- 使用SQL语句实现分组的第一天
- build.sbt
- Response对象实现请求重定向
- Android中沉浸式状态栏,改变状态栏颜色类似QQ样式
- 点击Activity的回退键返回到手机的主界面
- 学习汇报
- Linux 互斥锁、原子操作实现原理