场景中创建N(两个以上)个物体,鼠标可以选中任何物体,当鼠标选中为非地面时,选中的物体变为红色,之前选中的物体恢复为之前的颜色,鼠标点击到地面时,让之前选中的那个物体移动的当前点击的位置
2017-04-18 20:31
691 查看
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);
}
}
}
相关文章推荐
- 我的Unity(1)一点一滴 鼠标点击任意位置,物体移动到该位置。
- u3d 鼠标点击位置,物体移动过去。 U3d mouse clicks position, objects move past.
- 任意创建偶数个button,每两个button一行,通过点击任何按钮,可以实现相邻按钮间的颜色转换
- Unity3d--物体移动到鼠标点击位置
- 选中表格中相应行的复选框,点击下面的“删除”按钮可以删除相应的行,选中下面的"全选"复选框,则所有行的复选框全部选中,取消则全部取消。 鼠标移动到封面上在旁边显示大图,鼠标移开,大图消失
- VMWARE中虚拟工具VMTOOLS的安装 安装 vmtools之前,需要先打开虚拟机,并且启动其中的操作系统。 注意看下图中鼠标的位置。请将鼠标移动到相应位置上点击右键。 在弹出的菜单最下端点击“
- u3d关于鼠标点击地面上的一点,物体就移动到这一点的效果
- unity3D 实现NGUI物体朝鼠标点击位置移动
- Unity18--鼠标和场景相反运动、物体绕过障碍物,向目标自动移动,且鼠标点击哪里,物体也运动
- Unity3D游戏场景之鼠标点击地面控制人物移动
- Unity移动物体到鼠标点击位置
- 鼠标移动时行变色并可以点击行时选中行
- Unity中物体如何移动到鼠标点击位置
- 根据鼠标点击位置移动物体
- [原]界面上有几个球队名字的列表,将鼠标放到球队名字上就变为红色背景,其他球队背景颜色为白色,点击一个球队的时候就将点击的球队变为fontSize=30字体(fontSize=‘’回到默认)。
- 界面上有几个球队名字的列表,将鼠标放到球队名字上就变为红色背景,其他球队背景颜色为白色,点击一个球队的时候就将点击的球队变为fontSize=30字体(fontSize=‘’回到默认)。
- jquery隔行换色和鼠标移动、离开当前行颜色变化
- 物体向鼠标点击处移动
- 创建悬浮对话框和触摸任何位置都可以关闭的对话框
- js获取鼠标点击位置(界面的位置,可以使用top和left直接定位的)