- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unity3D物理射线和碰撞.
1 Camera:包含两个方法跟射线有关系
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void Update() {
Ray ray = camera.ScreenPointToRay(new Vector3(200, 200, 0));
Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);
}
}
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void Update() {
Ray ray = camera.ViewportPointToRay(new Vector3(0.5F, 0.5F, 0));
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
print(Im looking at + hit.transform.name);
else
print(Im looking at nothing!);
}
}
2 Collider:有一个方法
// pragma below is needed due to a UnityJS issue
//下面的代码运行于js
#pragma strict
function Update(){
var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
if (collider.Raycast (ray, hit, 100.0)) {
Debug.DrawLine (ray.origin, hit.point);
}
}
3 Debug:绘制射线
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void Update() {
Vector3 forward = transform.TransformDirection(Vector3.forward) * 10;
Debug.DrawRay(transform.position, forward, Color.green);
}
}
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void OnCollisionEnter(Collision collision) {
foreach (ContactPoint contact in collision.contacts) {
Debug.DrawRay(contact.point, contact.normal, Color.green, 2);
}
}
}
4 Gizmos:辅助线框的方法
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void OnDrawGizmosSelected() {
Gizmos.color = Color.red;
Vector3 direction = transform.TransformDirection(Vector3.forward) * 5;
Gizmos.DrawRay(transform.position, direction);
}
}
5 Physics:物理学里的多个方法,跟射线有关的碰撞
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
void Update() {
RaycastHit[] hit
文档评论(0)