【Unity笔记】经典的鼠标点击射线检测碰撞

void Update (){
    if(Input.GetMouseButton(0)){
        //从摄像机发出到点击坐标的射线
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitInfo;
        if(Physics.Raycast(ray,out hitInfo)){
            //划出射线,只有在scene视图中才能看到
            Debug.DrawLine(ray.origin,hitInfo.point);
            GameObject gameObj = hitInfo.collider.gameObject;
            Debug.Log("click object name is " + gameObj.name);
            //当射线碰撞目标为boot类型的物品,执行拾取操作
            if(gameObj.tag == "boot"){
                Debug.Log("pickup!");
            }
        }
    }
}
时间: 2024-08-08 10:10:29

【Unity笔记】经典的鼠标点击射线检测碰撞的相关文章

Unity简单的通过鼠标点击移动

public class PlayerController : MonoBehaviour { CharacterController cc; [SerializeField] float m_RotationSpeed = 10f; [SerializeField] private float speed = 10; Quaternion m_TargetDir; Vector3 targetPos = Vector3.zero; bool isRotated = false; void St

Unity的射线检测碰撞(JavaScript)

#pragma strict function Start () { } function Update () { var hit:RaycastHit; if(Physics.Raycast(transform.position,transform.forward,hit,8)) { print("射线触碰了"+hit.collider.gameObject+"物体"); } }

unity中让物体移动到鼠标点击位置(单击移动和双击暂停移动)

private bool IsMove;//移动 //鼠标双击的参数(第一种方式的参数) private float delay = 0.5f; private float firstClickTime = 0; private bool oneClick = false; //点击了第一下 //双击(第二种方式的参数) private float endtime = 0; private float Doubletime = 0.5f; //响应时间 public void Start(Gam

Unity获取鼠标点击位置,物体朝鼠标点击处移动

大型游戏中经常会有这种场景,点击屏幕位置,人物就会朝着鼠标点击位置移动,下面我们就来实现这种效果. 首先,我们在场景中添加一个Plane,并且设置它的tag为Plane,然后,在Plane上面添加一个Cube,设置好位置,刚好放置在Plane上面,最后,给cube添加一个脚本,脚本内容如下: using UnityEngine; using System.Collections; public class RayCastTest : MonoBehaviour { //cube移动速度 publ

打箱子&地形&鼠标点击移动总结

地形案例总结 变换 Transform1 变换组件决定了场景中所有物体的方位,旋转和缩放.每个物体都有一个变换组件.2 //获取游戏对象的子物体 ston = GameObject.Find("Capsule").transform.FindChild("skeleton");在Unity中父子化是一个非常重要的概念.当一个游戏对象是另一个游戏对象的父物体时,其子游戏对象会随着它移动.旋转和缩放,就像你的胳膊属于你的身体,当你旋转身体时,你的胳膊也会跟着旋转一样.任

用iTween实现一个鼠标点击一个地方平面中间出现一个向上抛然后下落的球

首先我们创建一个平面, 就用Cube来创建把,来X和Z设置成10,然后我们就有了一个地形了,然后我们创建需要生成的球,然后我们创建一个空物体,把我们的这个球放到这个空物体下面,然后制作成prefabs,然后我们建一个图标,这里我们就用Cube来代替这个图标,把颜色修改为红色,我们还需要创建一个空物体,让他离我们的地形Y为0.5f,主要是为了在这个地方实例化出球,然后我们在这个空物体上写一个C#脚本, 代码如下: using UnityEngine;using System.Collections

Listbox与dataGridView的获取鼠标点击事件的区别!!!

1 int index = lisxian.IndexFromPoint(e.X, e.Y);//获取鼠标点击 2 lisxian.SelectedIndex = index; Listbox获取鼠标的代码!!!! 1 int index = e.RowIndex; 2 DataGridViewRow currenRow = this.dgvxian3.Rows[index]; dataGridView获取鼠标代码!!!! private void lisxian_SelectedIndexCh

鼠标点击单元格显示在相应文本框中的方法(单元格事件)

1 //点击单元格显示此行相应内容 2 private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 3 { 4 // 找到鼠标点击的行 5 int index = e.RowIndex; 6 DataGridViewRow currenRow = this.dataGridView1.Rows[index]; 7 //找到每一个单元格的值 8 this.textBox2.Text=

unity 射线检测

unity中射线检测时非常实用也经常实用的一种手段.下面讲解一下射线检测问题. 1)Ray 根据射线端点和射线的方向定义一条射线 Ray ray= new Ray(transform.position, transform.forward); 定义一个包含射线投射信息的变量RaycastHit hit,并进行射线检测Physics.SphereCast RaycastHit hit; if(Physics.SphereCast(ray,1f,out hit)) { if(hit.distance