首页 > 其他分享 >摇杆,3D、2D图片英雄对应位置,滚轮放大缩小

摇杆,3D、2D图片英雄对应位置,滚轮放大缩小

时间:2023-04-11 14:14:11浏览次数:42  
标签:Vector3 transform 2D 摇杆 英雄 position dt public 3D

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

/// <summary>
/// 英雄移动
/// </summary>
public class yd : MonoBehaviour,IDragHandler,IEndDragHandler
{
    public GameObject ima;//父集图片
    Vector2 v2, st;
    bool b;

    //public GameObject player;//英雄
    GameObject p;//英雄
    public GameObject cam;//相机
    Vector3 v3;//距离


    public Image dt;//地图
    public Image pl;//人物点
    Vector3 v, v1;//dt位置
    //拖拽中
    public void OnDrag(PointerEventData eventData)
    {
        b = true;
        v2 = eventData.position - st;
        transform.localPosition = Vector3.ClampMagnitude(v2, 30f);
    }
    //拖拽结束
    public void OnEndDrag(PointerEventData eventData)
    {
        b = false;
        transform.position = ima.transform.position;
    }

    // Start is called before the first frame update
    void Start()
    {
        st = transform.position;//赋初始位置
        p = GameObject.FindGameObjectWithTag("g");//找到英雄标签
        p.transform.position = new Vector3(0, 1, 0);//英雄赋初始位置
        p.transform.rotation = Quaternion.EulerRotation(0, 0, 0);
        p.GetComponent<Rigidbody>().useGravity = true;//英雄刚体激活
        //相机
        v3 = p.transform.position - cam.transform.position;
        //小地图
        v = new Vector3(-4.5f, 0, -4.5f);
    }

    // Update is called once per frame
    void Update()
    {
        if (b == true)
        {
            p.transform.LookAt(new Vector3(v2.x, 0, v2.y));//英雄朝向
            p.transform.Translate(Vector3.forward * 2 * Time.deltaTime);//英雄移动

            v1 = p.transform.position;
            float x = (v1.x - v.x) / 9;
            float y = (v1.z - v.z) / 9;
            dt.rectTransform.pivot = new Vector2(x, y);
            dt.rectTransform.localPosition = Vector3.zero;
            pl.transform.eulerAngles = new Vector3(0, 0, -p.transform.eulerAngles.y);

        }
        //相机和英雄的距离始终保持一致
        cam.transform.position = p.transform.position - v3;

        //鼠标滚轮放大地图图片
        if(Input.mouseScrollDelta.y>0)
        {
            dt.transform.localScale += Vector3.one;
        }
        //鼠标滚轮缩小地图图片
        if (Input.mouseScrollDelta.y < 0)
        {
            if(dt.transform.localScale.x-1>0)
            {
                dt.transform.localScale -= Vector3.one;
            }
        }
    }
}

 

 

标签:Vector3,transform,2D,摇杆,英雄,position,dt,public,3D
From: https://www.cnblogs.com/cxh123/p/17306017.html

相关文章

  • 欢迎来到偶伴科技公司的3D真人手办制作世界
    来加入3D真人手办的世界欢迎来到偶伴科技公司的3D真人手办制作世界!偶伴科技公司是一家专门从事3D真人手办制作的公司。公司拥有先进的制作技术和专业的设计师团队,让手办的每一个细节都能呈现得栩栩如生。近日,公司在北京欢乐谷开设了门店,为游客们提供了各式各样的手办商品,成为欢乐谷......
  • clayui实用系列(一):在C#里切换窗口时使用各种3D/2D眩酷特效,多达13种特效。
       预览:         下载     这次clayui给大家带来了比较实用的东西,因为时间比较仓促,就先放出C#版,目前只有13种特效,因为做这个本身也比较麻烦,所以想先看看大家的反应吧,如果大家觉得不好用,或者不够眩的话,就不继续下去了。当然,如果大家对这个比较喜欢的话,会......
  • Unity3D之资源管理——Addressables管理详解
    Addressables是可寻址资源系统提供了一种简单的方法通过“地址”加载资源。简化资源包的创建和部署的管理开销。是在AssetBundle之后的另一种资源管理方式。Addressables下载安装设置1.用PackageManager进行安装AddressableSystem,我这里Unity3D是2019.3.11版本,Addressable最新已经......
  • 和我一起学 Three.js【初级篇】:1. 搭建 3D 场景
    欢迎关注「前端乱步」公众号,我会在此分享Web开发技术,前沿科技与互联网资讯。0.系列文章合集本系列第6,7章节支持微信公众号内付费观看,将在全系列文章点赞数+评论数>=500,1000时分别解锁发布。《0.总论》......
  • 3d打印机 marlin固件 EEPROM Version ERROR 版本错误
    问题描述:刷入新固件后,提示EEPROMVersionERROR  有两个选项(Restart)(Ingore)选择Ingore可以继续正常使用 问题原因:多为marlin版本和EEPROM版本不一致导致,开机时通过pronterface链接打印机,可以看到如下提示:  解决方法:通过Prontface依次发送下......
  • 基于数字孪生智慧污水厂Web3D可视化系统
    城市水环境不仅关系到国民生活的质量,还对我国社会发展有着深入的影响。城市污水处理厂的存在不仅能够提升生态环保工作发挥的效用,还能够向城市居民宣传生态环保的重要性,使得更多的市民认识到节约、环保的意义,能够从自身出发,注重节约用水及循环利用,减少水资源浪费,起到强化生态环保......
  • 38.3D草图
    方式一,拉伸实体-3d草图-转换实体引用-删除实体1.拉伸实体,后倒圆角2.进入3d草图       3.得到路径后扫描  方式二,直接3d草图画出来1.点击进入3d草图,点击直线命令-点击tab可切换工作面为xy-yz-zx   2.3d草图标注-tab   3.绘制3d草图后扫描......
  • 20年来最优秀游戏处理器!AMD锐龙7 7800X3D首发评测:大幅超越i9-13900KS
    一、前言:75W功耗的划时代游戏处理器2022年10月,酷睿i9-13900K震撼面世,虽然功耗高达300W之巨,但在前所未有的强悍游戏性能面前,这不算什么!一块3000元的堆料Z790主板、一个千元的360水冷散热器、一款千瓦金牌电源就能解决处理器的功耗与发热问题。再加上还有降压的玩法,i9-13900K以及......
  • [paper reading]|IC-FPS: Instance-Centroid Faster Point Sampling Module for 3D Po
    摘要:本文说首次实现了大规模点云场景中基于点的模型的实时检测(<30ms);首先指出FPS采样策略进行下采样是耗时的,尤其当点云增加的时候,计算量和推理时间快速增加;本文提出IC-FPS;包含两个模块:localfeaturediffusionbasedbackgroundpointfilter(LFDBF);CentroidInstanceSampl......
  • A NAIVE CON2D CPU IMPL
    /******************************************************************************WelcometoGDBOnline.GDBonlineisanonlinecompileranddebuggertoolforC,C++,Python,Java,PHP,Ruby,Perl,C#,OCaml,VB,Swift,Pascal,Fortran,Haskell,Objective......