1.3 卡牌的旋转效果———自制卡牌游戏之旅

本文介绍了如何在Unity3D中实现卡牌旋转效果,通过从Main Camera射出射线判断玩家视角,使用RaycastAll方法进行碰撞检测,根据碰撞结果控制卡牌正背面的显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


素材来源:影之诗国服大百科

内容简介:本篇主要介绍卡牌旋转效果的实现


一、实现效果

在这里插入图片描述

二、实现过程

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值