[Unity3D] 关于触屏用Ray来Hit场景中GameObject的笔记(copy的,转不来)
2013-10-10 10:35
441 查看
先放一段JS代码(出自:http://game.ceeger.com/forum/read.php?tid=4&fpage=2)
///////////////////////////////////////////////////////////////////////////
function Update ()
{
for (var i = 0; i < Input.touchCount; ++i) {
if (Input.GetTouch(i).phase == TouchPhase.Began) {
var hit:RaycastHit;
// 从目前的触摸坐标,构建射线
var ray : Ray = camera.ScreenPointToRay (Input.GetTouch(i).position);
print("ray="+ray);
if (Physics.Raycast (ray, hit))
print ("I'm looking at " + hit.transform.name);
else
print ("I'm looking at nothing!");
}
}
}
///////////////////////////////////////////////////////////////////////////
我经过实验后的理解是:
①这段代码是放在camera上的
②需要被击中的对象必须加collider
③被射中的Object可以用"hit"来调用。
例如,我可以写“hit.transform.position.x+=0.1”测试成功。
因此,可以用SendMessage来调用被击中对象自身内的函数。
例如直接调用“hit.transform.SendMessage(OnMouseDown)”的话,可以用鼠标测试单点效果了!
④Ray不会贯穿Object,当我放两个cube在有遮挡的地方,之后触发前面的碰撞。
重点语句:
①发射Ray用:
var ray : Ray = camera.ScreenPointToRay (Input.GetTouch(i).position);
②撞击用:
var hit:RaycastHit;
Physics.Raycast (ray, hit)
撞到东西,返回true值,并给“hit”赋值
///////////////////////////////////////////////////////////////////////////
function Update ()
{
for (var i = 0; i < Input.touchCount; ++i) {
if (Input.GetTouch(i).phase == TouchPhase.Began) {
var hit:RaycastHit;
// 从目前的触摸坐标,构建射线
var ray : Ray = camera.ScreenPointToRay (Input.GetTouch(i).position);
print("ray="+ray);
if (Physics.Raycast (ray, hit))
print ("I'm looking at " + hit.transform.name);
else
print ("I'm looking at nothing!");
}
}
}
///////////////////////////////////////////////////////////////////////////
我经过实验后的理解是:
①这段代码是放在camera上的
②需要被击中的对象必须加collider
③被射中的Object可以用"hit"来调用。
例如,我可以写“hit.transform.position.x+=0.1”测试成功。
因此,可以用SendMessage来调用被击中对象自身内的函数。
例如直接调用“hit.transform.SendMessage(OnMouseDown)”的话,可以用鼠标测试单点效果了!
④Ray不会贯穿Object,当我放两个cube在有遮挡的地方,之后触发前面的碰撞。
重点语句:
①发射Ray用:
var ray : Ray = camera.ScreenPointToRay (Input.GetTouch(i).position);
②撞击用:
var hit:RaycastHit;
Physics.Raycast (ray, hit)
撞到东西,返回true值,并给“hit”赋值
相关文章推荐
- [Unity3D] 关于触屏用Ray来Hit场景中GameObject的笔记
- Unity3D 关于Coroutine(协程)使用的研究笔记及关于yield的理解
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- 关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- Unity3D 场景编辑器扩展学习笔记-Editor
- Unity3D之异步加载游戏场景中关于进度条显示
- Unity3D 场景编辑器扩展学习笔记-Handles&Event
- 个人学习笔记--关于unity3d开线程后卡死BUG
- Unity3D笔记 愤怒的小鸟<一>场景切换
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- Unity3D中关于场景销毁时事件调用顺序的一点记录
- 关于 Unity3D 持久化数据存储的笔记 之 PlayerPrefs
- 关于oc的学习笔记 -copy和mutableCopy
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- U3D笔记---关于场景烘焙
- unity3D 关于重新载入场景后Easytouch不能使用的问题
- unity3d RaycastHit
- 【转】【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- 【Android游戏开发之路二】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记!
- Unity3D 场景编辑器扩展学习笔记-EditorWindow