场景中创建N(两个以上)个物体,鼠标可以选中任何物体,当鼠标选中为非地面时,选中的物体变为红色,之前选中的物体恢复为之前的颜色,鼠标点击到地面时,让之前选中的那个物体移动的当前点击的位置
来源:互联网 发布:咫尺网络代理商 编辑:程序博客网 时间:2024/05/02 01:54
using UnityEngine;
using System.Collections;
public class MouseRayChangeColor : MonoBehaviour {
private GameObject game;
private Color cubecolor;
private RaycastHit hit;
private RaycastHit hitchangecolor;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//RaycastHit hit;
if(Input.GetMouseButtonDown(0)){
if(game!=null){//重置颜色
Physics.Raycast (Camera.main.ScreenPointToRay(Input.mousePosition),out hitchangecolor);
if(!hitchangecolor.collider.gameObject.name.Contains("Plane")){
game.gameObject.GetComponent<MeshRenderer> ().material.color = cubecolor;
}
}
Physics.Raycast (Camera.main.ScreenPointToRay(Input.mousePosition),out hit);
if(!hit.collider.gameObject.name.Contains("Plane")){
cubecolor = hit.collider.GetComponent<MeshRenderer> ().material.color;
}
if(!hit.collider.name.Contains("Plane")){
hit.collider.GetComponent<MeshRenderer> ().material.color = Color.red;
game = hit.collider.gameObject;
}
//hitchangeposition = hit;
// if(hit.collider.name.Contains("Plane")){
// Vector3 temp = Vector3.Lerp (game.transform.position,hit.point,Time.deltaTime);
// game.transform.position = new Vector3 (temp.x,0.5f,temp.z);
//
// }
}
if(hitchangecolor.collider){
Vector3 temp = Vector3.Lerp (game.transform.position,hitchangecolor.point,Time.deltaTime);
game.transform.position = new Vector3 (temp.x,0.5f,temp.z);
}
}
}
using System.Collections;
public class MouseRayChangeColor : MonoBehaviour {
private GameObject game;
private Color cubecolor;
private RaycastHit hit;
private RaycastHit hitchangecolor;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//RaycastHit hit;
if(Input.GetMouseButtonDown(0)){
if(game!=null){//重置颜色
Physics.Raycast (Camera.main.ScreenPointToRay(Input.mousePosition),out hitchangecolor);
if(!hitchangecolor.collider.gameObject.name.Contains("Plane")){
game.gameObject.GetComponent<MeshRenderer> ().material.color = cubecolor;
}
}
Physics.Raycast (Camera.main.ScreenPointToRay(Input.mousePosition),out hit);
if(!hit.collider.gameObject.name.Contains("Plane")){
cubecolor = hit.collider.GetComponent<MeshRenderer> ().material.color;
}
if(!hit.collider.name.Contains("Plane")){
hit.collider.GetComponent<MeshRenderer> ().material.color = Color.red;
game = hit.collider.gameObject;
}
//hitchangeposition = hit;
// if(hit.collider.name.Contains("Plane")){
// Vector3 temp = Vector3.Lerp (game.transform.position,hit.point,Time.deltaTime);
// game.transform.position = new Vector3 (temp.x,0.5f,temp.z);
//
// }
}
if(hitchangecolor.collider){
Vector3 temp = Vector3.Lerp (game.transform.position,hitchangecolor.point,Time.deltaTime);
game.transform.position = new Vector3 (temp.x,0.5f,temp.z);
}
}
}
0 0
- 场景中创建N(两个以上)个物体,鼠标可以选中任何物体,当鼠标选中为非地面时,选中的物体变为红色,之前选中的物体恢复为之前的颜色,鼠标点击到地面时,让之前选中的那个物体移动的当前点击的位置
- 鼠标针对物体的绝对拖动,点击物体移动~
- Unity的Scene场景选中物体Hierarchy窗口无法锁定选中的物体的问题
- 物体朝着鼠标点击的地方移动
- unity3d点击屏幕选中物体
- U3D 物体点击被选中
- 我的Unity(1)一点一滴 鼠标点击任意位置,物体移动到该位置。
- 鼠标图片icon(选中物体变换图片)C#代码
- Unity移动物体到鼠标点击位置
- 鼠标点击物体移动到该位置
- Unity怎么点击来选中物体、获取物体信息
- OGRE 选中物体
- OGRE 选中物体
- OGRE 选中物体
- OGRE 选中物体
- OGRE 选中物体
- 我的Unity(2)一点一滴 鼠标拖动物体,物体在三维中移动到该位置。
- Unity中物体如何移动到鼠标点击位置
- Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据
- 快排java实现
- linux-vi命令
- 剑指offer-面试题29-数组中出现次数超过一半的数字
- VR系列——Oculus Rift入门手册:二、演示
- 场景中创建N(两个以上)个物体,鼠标可以选中任何物体,当鼠标选中为非地面时,选中的物体变为红色,之前选中的物体恢复为之前的颜色,鼠标点击到地面时,让之前选中的那个物体移动的当前点击的位置
- CEPH 概念摘记
- C++递归函数
- 如何查看Linux是32位还是64位
- Linux系统安装并使用Tomcat
- Jasper6 导出Excle,PDF,World文件
- FZU 2020 组合
- Python输入输出重定向
- 4.18