[游戏开发][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;
    }


}
相关推荐
程序猿零零漆1 天前
【Spring Boot开发实战手册】掌握Springboot开发技巧和窍门(六)创建菜单和游戏界面(下)
java·spring boot·游戏
月下雨(Moonlit Rain)1 天前
宇宙飞船游戏项目
python·游戏·pygame
海天一色y1 天前
使用 Python + Tkinter 打造“猫狗大战“回合制策略游戏
开发语言·python·游戏
淡海水2 天前
【节点】[EvaluateSimulationAdditionalData节点]原理解析与实际应用
unity·游戏引擎·shadergraph·图形·simulation·evaluate
新缸中之脑2 天前
Tripo AI:构建游戏就绪的3D资产
人工智能·游戏·3d
小贺儿开发2 天前
Unity3D 文物互动大屏
3d·unity·实时互动·udp·socket·网络通信
秦奈2 天前
Unity学习复习随笔(12):网络开发基础
网络·笔记·学习·unity
淡海水3 天前
【节点】[EvaluateRefractionData节点]原理解析与实际应用
unity·游戏引擎·shadergraph·data·图形·evaluate·refraction
淡海水3 天前
【节点】[EvaluateScatteringColor节点]原理解析与实际应用
unity·游戏引擎·shadergraph·color·图形·evaluate·scattering
henry1010103 天前
DeepSeek生成的网页小游戏 - 迷你高尔夫
前端·javascript·游戏·html