[游戏开发][Unity] TPS射击游戏相机实现

技术难点:由于是第三人称射击游戏,角色和相机之间有夹角,所以枪口点和准星是有误差的,下面是和平精英手游截图,我用AK射击zhuzi

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraFollow : MonoBehaviour
{
    public Transform ShootPoint;
    //射击距离(米)
    public float AimDistance = 100;
    public float CamToAimDis = 103;
    private Vector3 AimPoint;

    //横向观察夹角
    public float HorizonAngle = 0.5f;
    public float VerticalAngle;

    //旋转轴向
    public Vector3 axis = new Vector3(0, 1, 0);

    void Update()
    {
        //射击方向的平面方向
        Vector3 dir = ShootPoint.forward;
        //计算射击目标点
        AimPoint = ShootPoint.position + ShootPoint.forward * AimDistance;

        Vector3 camDir = Quaternion.AngleAxis(HorizonAngle, axis) * dir;
        Vector3 CamPos =  AimPoint - Quaternion.AngleAxis(HorizonAngle, axis) * dir * CamToAimDis;
        transform.position = CamPos;
        transform.forward = camDir;
    }


}
相关推荐
金銀銅鐵21 小时前
借助 Pygame 探索最大公约数的规律
python·数学·游戏
nujnewnehc5 天前
不会 py, 用 ai 写了个游戏辅助的感受
人工智能·游戏
jump_jump6 天前
为了重玩金庸群侠传,我研究了一下 Ruffle 怎么复活 Flash
游戏·rust·github
XIAOHEZIcode7 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
Aloys_Code8 天前
逆向一个被遗忘的DVD游戏格式:从DES加密到Rust模拟器
游戏·模拟器·retroarch·复古游戏·native32·sunplus·赤刃·钢铁风暴
金銀銅鐵8 天前
用 Python 实现 Take-Away 游戏
python·游戏
金銀銅鐵9 天前
用 Pygame 实现 15 puzzle
python·数学·游戏
两水先木示11 天前
【Unity3D】小游戏启动优化、发热优化、蒙皮网格优化
游戏
资源分享助手11 天前
杀戮尖塔2下载、Slay the Spire 2中文版、卡牌肉鸽游戏、杀戮尖塔2联机、杀戮尖塔2攻略
游戏
叶帆11 天前
【YFIOs】用C#开发硬件之设备上云
开发语言·unity·c#