好久不接触U3d发现代码都忘得干干净净了,暑假要跟学弟学妹一块做游戏,趁他们学习的空我在复习一下,把学的东西写一下,省的自己再忘。
用Caedboard做了一个注视的射线交互,整理了下用法,代码如下
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Raytest : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//创建一条摄像机到屏幕的射线
//Ray ray = new Ray(transform.position,transform.forword);参数分别为发射射线的位置,和方向
RaycastHit hit;//创建一个结构体,储存碰撞的信息
//public static void bool Raycast(Ray ray,RaycastHit hitinfo,float distence,int layerMask)
//前两个参数都在之前创建了,distence就是发射多远,layerMask和那个层的发生碰撞
if (Physics.Raycast(ray,out hit,1000))
{
if(hit.transform.gameObject.name=="Cube")
{
hit.transform.Translate(0, 0, 1.0f);
}
}
Debug.DrawLine(ray.origin, hit.point, Color.red);//在Scene把射线ray画出来
}
}
希望自己可以坚持下去