unity3d 求射线碰撞物体的例子,要求只可以与某层物体发生碰撞.
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/02 10:24:14
unity3d 求射线碰撞物体的例子,要求只可以与某层物体发生碰撞.
c#:
using UnityEngine;
using System.Collections;
public class Pathing :MonoBehaviour {
private int LayerGround;
private bool CastRays = true;
void Start () {
LayerGround = LayerMask.NameToLayer("Ground");
}
void Update () {
if (CastRays) {
Ray ray = Camera.mainCamera.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
// Raycast
if (Physics.Raycast(ray,out hit,Mathf.Infinity)) {
if (hit.transform.gameObject.layer == LayerGround) {
Debug.Log("Ground");//这里和指定层碰撞
} else {
Debug.Log("Other Objects");
}
}
}
}
}
js:
private var LayerGround;
private var CastRays :boolean = true;
function Start () {
LayerGround = LayerMask.NameToLayer("Ground");
}
function Update () {
if (CastRays) {
var ray = Camera.mainCamera.ScreenPointToRay (Input.mousePosition);
var hit :RaycastHit;
// Raycast
if (Physics.Raycast(ray,hit,Mathf.Infinity)) {
if (hit.transform.gameObject.layer == LayerGround) {
Debug.Log("Ground");//这里和指定层碰撞
} else {
Debug.Log("Other Objects");
}
}
}
}
再问: 你这是是判断物体在哪一层,其实我是想画出那条射线。但是弄不到忽略层。
再答: 那就判断从Cube发出的射线是否和你指定层(比如,程序中的Ground层)发生碰撞,如果碰撞的物体是Ground层的,就从Cube的postion画条线到hit的position,其他的不管 Debug.Log("Ground"); 下加入 Debug.DrawLine(transform.position,hit.transform.position); 只要鼠标移动到是Ground层的物体就会从Cube发出射线到鼠标点,脚本是赋给Cube的
using UnityEngine;
using System.Collections;
public class Pathing :MonoBehaviour {
private int LayerGround;
private bool CastRays = true;
void Start () {
LayerGround = LayerMask.NameToLayer("Ground");
}
void Update () {
if (CastRays) {
Ray ray = Camera.mainCamera.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
// Raycast
if (Physics.Raycast(ray,out hit,Mathf.Infinity)) {
if (hit.transform.gameObject.layer == LayerGround) {
Debug.Log("Ground");//这里和指定层碰撞
} else {
Debug.Log("Other Objects");
}
}
}
}
}
js:
private var LayerGround;
private var CastRays :boolean = true;
function Start () {
LayerGround = LayerMask.NameToLayer("Ground");
}
function Update () {
if (CastRays) {
var ray = Camera.mainCamera.ScreenPointToRay (Input.mousePosition);
var hit :RaycastHit;
// Raycast
if (Physics.Raycast(ray,hit,Mathf.Infinity)) {
if (hit.transform.gameObject.layer == LayerGround) {
Debug.Log("Ground");//这里和指定层碰撞
} else {
Debug.Log("Other Objects");
}
}
}
}
再问: 你这是是判断物体在哪一层,其实我是想画出那条射线。但是弄不到忽略层。
再答: 那就判断从Cube发出的射线是否和你指定层(比如,程序中的Ground层)发生碰撞,如果碰撞的物体是Ground层的,就从Cube的postion画条线到hit的position,其他的不管 Debug.Log("Ground"); 下加入 Debug.DrawLine(transform.position,hit.transform.position); 只要鼠标移动到是Ground层的物体就会从Cube发出射线到鼠标点,脚本是赋给Cube的
unity3d 求射线碰撞物体的例子,要求只可以与某层物体发生碰撞.
unity3d 用射线判断物体碰撞.当物体进入和离开范围时都给出提示,为什么我的脚本只生效了一次?
两物体发生非弹性碰撞动能损失与两物体质量之比的关系
质量为M的物体从离地面高为H处由静止开始释放,落地后与地面发生碰撞,碰撞时损失的能量很少,可以忽略不计,碰撞后能反弹的最
物体与固定的挡板发生一次完全弹性碰撞后物体的速度与碰撞前的速度大小相同吗?
一个小物体从斜面上静止滑下,与斜面底端的挡板发生碰撞,碰撞时物块的机械能没有损失,物块与挡板碰撞后的速度与碰撞前的速度等
质量为m1速度为v的物体A与静止的质量为m2的物体B发生对心碰撞,讨论在碰撞后A能否返回?并求返回速度范围?我知道答案需
弹性碰撞碰撞后,两物体的速度相等吗
两个已知质量和初速的刚性物体碰撞,求碰撞后速度
碰撞中,能量吸收与物体质量的关系
光滑水平面上质量为m1的物体以速度v1与原来静止的质量为m2的物体发生弹性碰撞.试利用m1,m2,v1表示碰撞后两物体的
unity 怎么判断碰撞的物体?