【100个 Unity实用技能】| 游戏中使技能或装备跟随角色环绕,持续旋转

举报
呆呆敲代码的小Y 发表于 2022/06/21 09:43:06 2022/06/21
【摘要】 🎥 本文由 呆呆敲代码的小Y 原创🎄 学习专栏推荐:Unity系统学习专栏🌲 游戏制作专栏推荐:游戏制作🌲Unity实战100例专栏推荐:Unity 实战100例 教程🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📆 未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️------------------------- Unit...

在这里插入图片描述

  • 🎥 本文由 呆呆敲代码的小Y 原创

  • 🎄 学习专栏推荐:Unity系统学习专栏

  • 🌲 游戏制作专栏推荐:游戏制作

  • 🌲Unity实战100例专栏推荐:Unity 实战100例 教程

  • 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📆 未来很长,值得我们全力奔赴更美好的生活✨

  • ------------------❤️分割线❤️-------------------------

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发美术建筑汽车设计影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机平板电脑PC游戏主机增强现实虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏

Unity 踩坑小知识点学习

Unity中使某个物体一直跟随另一个物体旋转(跟随旋转)

思路:在开始游戏时获取和玩家的位置差距的向量,然后更新跟随物体的位置,然后更改位置到指定距离,最后然后再获取差距向量。

因为RotateAround只能围绕目标进行旋转,不能控制旋转的半径,所以需要不断更新位置来让控制旋转的半径。

实现效果如下:
请添加图片描述

跟随旋转的代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Saber : MonoBehaviour {
    public Transform targetPos;//旋转中心对象
    public float speed = 200f;//旋转速度
    public float distance;//旋转半径
    Vector3 dir;
    
    void Start()
     {
        dir = transform.position - Target.transform.position;
    }
 
    void Update() {
        //更新跟随物体的位置
        transform.position = targetPos.position + dir.normalized * distance;
        //围绕角色旋转
        transform.RotateAround(targetPos.position, Vector3.up, speed * Time.deltaTime);
        //更新方向向量
        dir = transform.position - targetPos.position;
    } 

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。