素材来源:影之诗国服大百科
内容简介:本篇主要介绍卡牌旋转效果的实现
一、实现效果
二、实现过程
1. 想法
① 从Main Camera位置射出一道射线,射向卡牌前方的facePoint(Z轴小于卡牌)。
② 判断射线碰撞到的第一个物体是不是facePoint,如果是则表示玩家看到正面,如果不是则表示玩家看到的是背面。
2. 射线(Raycast)中的RaycastAll方法
Ray射线类和RaycastHit射线投射碰撞信息类是两个最常用的射线工具类。
创建一条射线Ray需要指明射线的起点(origin)
和射线的方向(direction)
这两个参数也是Ray的成员变量。
注意,射线的方向在设置时如果未单位化,Unity 3D会自动进行单位归一化处理。
射线Ray的构造函数为 :public Ray(Vector3 origin, Vector3 direction);
Physics.RaycastAll 所有光线投射:投射一条光线并返回所有碰撞,也就是投射光线并返回一个RaycastHit[]结构体。
void Update()
{
RaycastHit[] hits;
hits = Physics.RaycastAll(transform.position, transform.forward, 100.0F);
for (int i = 0; i < hits.Length; i++) // 遍历hits
{
...
RaycastHit hit = hits[i];
...
}
}
3. 具体代码实现
① 定义变量
public class BetterCardRotation : MonoBehaviour {
// 卡牌正面的父对象
pu