unity, 鼠标与场景交点

在鼠标与场景交点上放一个mark,并于1s后消失:

新建一个空GameObject,命名为moushHitTest,添加下面脚本:

using UnityEngine;
using System.Collections;

public class mouseHit : MonoBehaviour {
    public GameObject m_moushHitMarkPrefab;
    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {

if (Input.GetMouseButtonDown (0)) {//left button down
            Ray camRay = Camera.main.ScreenPointToRay (Input.mousePosition);
            RaycastHit hitInfo;
            float camRayLength = 100f;
            bool isHit = Physics.Raycast (camRay,out hitInfo,camRayLength);
            if (isHit) {
                Debug.Log(hitInfo.point);
                Object instance=Instantiate (m_moushHitMarkPrefab, hitInfo.point, Quaternion.identity);
                instance.name="hitMark";
                //about startCoroutine and yield: http://stackoverflow.com/questions/12932306/how-does-startcoroutine-yield-return-pattern-really-work-in-unity
                StartCoroutine(delayDestroy(instance));

}
        }

}

IEnumerator delayDestroy(Object instance){
        yield return new WaitForSeconds (1.0f);
        Destroy (instance);
    }

}

时间: 2024-10-19 00:40:05

unity, 鼠标与场景交点的相关文章

unity 鼠标拖拽物体实现任意角度自旋转

主要涉及函数 Input.GetAxis(“Mouse x”) 可取得鼠标横向(x轴)移动增量 Input.GetAxis(“Mouse y”) 可取得鼠标竖向(y轴)移动增量 通过勾股定理获取拖拽长度,长度越长旋转越快 在project setting--Input 可以设置 直接上代码,看了就明白了 1 using UnityEngine; 2 using System.Collections; 3 4 public class startRoate : MonoBehaviour 5 {

[Unity菜鸟] Unity鼠标双击,鼠标函数整理(未完)

1. 鼠标双击 ? 1 2 3 4 5 6 7 8 9 void OnGUI()    {        Event Mouse = Event.current;        if (Mouse.isMouse && Mouse.type == EventType.MouseDown && Mouse.clickCount == 2)        {            // 调用你的函数            print("Double Click&quo

Unity进度条场景载入的制作思路

有两种做法,如果全部都是AssetsBundle动态载入,可以自己管控加载和释放.还有一种是借助Unity的Level(场景). 如果直接A-B场景切换,我比较担心加载峰值过高,所以采取这种做法:A-L-B.L是进度条专用场景 第一个问题是如何检测,OnLevelWasLoaded可以判断是否新场景加载完了,并调用Application.LoadLevelAsync(...)进行加载,可以通过返回对象获取到加载进度 使用时发现一个比较奇怪的事情,当场景很小秒载的时候,加载进度条执行OnDestr

unity 鼠标拖带

组场景时,经常需要获取鼠标(或者点击)开始结束时讯息(包括开始拖动时的事件以及对应的坐标),unity为我们提供了两个接口来实现相关方法之前在Unity基础命令中也提到过. 在此在重申一下,两个接口对应两个方法,即可以对应开始结束拖动时的事件,数据则为eventData中. public void OnBeginDrag(PointerEventData eventData) public void OnEndDrag(PointerEventData eventData) public cla

【Unity入门】场景、游戏物体和组件的概念

版权声明:本文为博主原创文章,转载请注明出处. 游戏和电影一样,是通过每一个镜头的串联来实现的,而这样的镜头我们称之为“场景”.一个游戏一般包含一个到多个场景,这些场景里面实现了不同的功能,把它们组合起来就变成一个完整的游戏了.  在电影里面,每个镜头会包含布景,然后还会有演员在表演,摄像机将表演的画面记录下来,然后就变成了电影.同样的,在Unity游戏里面也同样存在相机,它的作用也是将游戏的画面展示在游戏设备的显示屏上面.所不同的是,Unity游戏里面,不论是布景还是人物,所有的东西我们都称之

Unity 编辑器扩展 场景视图内控制对象

http://blog.csdn.net/akof1314/article/details/38129031 假设有一个敌人生成器类,其中有个属性range用来表示敌人生成的范围区域大小,那么可以用OnDrawGizmos函数来绘制它在场景视图所代表的区域大小,便于开发调试.这个敌人生成器类,类似如下: 12345678910111213141516171819   using UnityEngine;using System.Collections; public class EnemySpa

Unity多个场景叠加或大场景处理方法小结

本文章由cartzhang编写,转载请注明出处. 所有权利保留.  文章链接: http://blog.csdn.net/cartzhang/article/details/47614153 作者:cartzhang 本想写个总结,奈何刚刚接触! 对于Unity中对象,多个场景或大的场景多人分割处理,有不能同时修改一下场景来提交. 这怎么办呢? 方法一,建立Prefab 把某个对象或需要多场景下使用的对象建立一个prefab对象,这样就可以在多场景下使用. 方法二,有高人自有办法 就是自己写了个

unity 3D游戏场景转换

//////////////////2015/07/07//////// /////////////////by xbw/////////////// ///////////////环境 unity 4.6.1// 当需要多个场景时,就用到了场景转换, 这里呢,我有两个场景,一个move(开场镜头),另一个second(游戏场景): 要想运行完开长镜头后接着运行游戏场景,需要用到一个函数::: Application.LoadLevel("second");引号里变是需要运行的场景,即

Unity 鼠标个性化

最初的版本,API是可以直接设置鼠标显示与否的,新版本就改了,先上下旧店的版本的: 1.思路: 在某些游戏下,经常会隐藏鼠标,或者有绚丽的动画来代替鼠标显示. 原理就是将鼠标隐藏(不显示)起来,设置一个sprite的坐标为鼠标坐标即可.当然代码要放到 Update里才行. 注意事项:此脚本不能挂在Camera上,否则会出现鼠标闪烁的情况. 顺带贴上一个之前的脚本: 实例代码: public dfGUICamera Camera; public dfSlicedSprite sprite; pub