FPS第三人称主角

动态的加载主角

 void Awake()
    {
     GameObject go = (GameObject)Resources.Load("Player");
        player = Instantiate<GameObject>(go);
        player.transform.position = new Vector3(4.6f, 0, -4.6f);
    }

用Easy_touch控制主角旋转

public void MoveJoyStick(Vector2 weizhi)
{
    if(weizhi.y!=0||weizhi.x!=0)
    {
        transform.LookAt(new Vector3(transform.position.x+weizhi.position.x,transform.position.y+weizhi.y,transform.z+weizhi.z));
    }
}

网页控制主角移动旋转

 void Move()
    {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");
        rigidbody.MovePosition(transform.position + new Vector3(h, 0, v )* speed * Time.deltaTime);

        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitInfo;
        if (Physics.Raycast(ray, out hitInfo, 200))
        {
            Vector3 target = hitInfo.point;
            target.y = transform.position.y;
            transform.LookAt(target);
        }       
    }

摄像机跟随主角平滑移动

public class FollowCamera : MonoBehaviour {
    public float smooth = 3;
    private Transform player;

    void Start()
    {
    //标签找主角
        player = GameObject.FindGameObjectWithTag(Tag.player).transform;
    }
    //固定帧移动效果好
    void FixedUpdate()
    {
        Vector3 targetPos = player.position + new Vector3(0,1,-2);
        transform.position = Vector3.Lerp(transform.position,targetPos,smooth*Time.deltaTime);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,我无法找到关于Unity实现第三人称视角的具体信息。但是,我可以为您提供一些关于Unity实现第三人称视角的一般步骤和示例代码。 1. 创建摄像机: - 在Unity中创建一个摄像机对象。 - 将摄像机放置在合适的位置和角度,以便能够正确显示第三人称视角。 2. 跟随主角: - 将摄像机对象设置为跟随主角对象。 - 使用脚本或代码来实现摄像机的跟随功能,使其始终保持在主角的后方或适当的位置。 3. 视角控制: - 实现视角控制功能,使玩家能够通过鼠标或其他输入设备来控制摄像机的旋转和移动。 - 使用脚本或代码来处理输入,并将其应用于摄像机对象,以实现第三人称视角的旋转和移动。 以下是一个简单的示例代码,演示了如何在Unity中实现第三人称视角: ```csharp using UnityEngine; public class ThirdPersonCamera : MonoBehaviour { public Transform target; // 主角对象 public float distance = 5f; // 摄像机与主角的距离 public float height = 2f; // 摄像机与主角的高度 public float rotationDamping = 3f; // 旋转阻尼 private void LateUpdate() { if (target != null) { // 计算摄像机的目标位置 Vector3 targetPosition = target.position - target.forward * distance + Vector3.up * height; // 平滑地旋转摄像机 Quaternion targetRotation = Quaternion.LookRotation(target.position - transform.position, target.up); transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, rotationDamping * Time.deltaTime); // 平滑地移动摄像机 transform.position = Vector3.Lerp(transform.position, targetPosition, rotationDamping * Time.deltaTime); } } } ``` 请注意,这只是一个简单的示例代码,您可能需要根据您的具体需求进行修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值