开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:490

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 513|回复: 5

[GUI] 【UGUI】怎么做图片能在我给定的范围中自由的移动 类似于气泡上升

[复制链接]  [移动端链接]
排名
17951
昨日变化
706

4

主题

21

帖子

73

积分

Rank: 2Rank: 2

UID
195502
好友
0
蛮牛币
0
威望
0
注册时间
2016-12-23
在线时间
22 小时
最后登录
2017-12-13
发表于 7 天前 | 显示全部楼层 |阅读模式
5蛮牛币
如图啊
QQ图片20171206175151.png

回复

使用道具 举报

3偶尔光临
239/300
排名
11387
昨日变化
175

5

主题

112

帖子

239

积分

Rank: 3Rank: 3Rank: 3

UID
252311
好友
3
蛮牛币
435
威望
0
注册时间
2017-11-3
在线时间
56 小时
最后登录
2017-12-13
发表于 7 天前 | 显示全部楼层
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BallMove : MonoBehaviour {

    Transform _desPos;
    Rigidbody _selfRig;
    [SerializeField]
    float moveSpeed = 10f;
   
    void Start () {
        _desPos = GameObject.Find("DesPosition").transform;    //设置一个球门
        _selfRig = GetComponent<Rigidbody>();
        
        StartCoroutine(MoveToTarget());  
    }
       
       
    void Move(Vector3 target)   //球的移动 传入目标的坐标 下面有方法返回随机的目标坐标
    {
        Vector3 v = target - _selfRig.transform.position;  //用目标坐标减去球的坐标获得球到目标的方向向量  方向为球到坐标
        Vector3 velocity = v.normalized;   //将方向向量规范化 变成方向正确 长度为1的方向向量
        _selfRig.velocity = velocity * moveSpeed;   //设置自身的移动速度 就是方向*速度了

        //Vector3 v = _desPos.position - _selfRig.transform.position;  //从发球点到门中心的向量
        //Vector3 velocity = v.normalized;    //单位向量
        //_selfRig.velocity = velocity*moveSpeed;
        Destroy(gameObject,6f);   //6秒后自毁
    }

    IEnumerator MoveToTarget()    //用携程来控制其移动
    {
        BallHitPoint();   //获得目标点     不知道为什么试了好多种方法 随机的目标点都要等待一会儿才能出现 所以用携程处理了这个<a href="http://www.manew.com/forum-ask-1.html" target="_blank" class="relatedlink">问题</a>
        yield return new WaitForSeconds(0.5f);  //等待五秒后发射球  
        Move(BallHitPoint());  //发射球 将目标点传入
        yield return null;   //运动完后终止协程
    }
   
    Vector3 BallHitPoint()  //获得目标点 返回值为随机的目标点位
    {
      MeshRenderer desPos =  _desPos.GetComponent<MeshRenderer>();  //目标获取其meshrender
        float midx = desPos.bounds.size.x/2;   //meshrender组件中.边界盒.size 获得球门的横坐标的宽度 下为高度
        float midy = desPos.bounds.size.y/2;
        float x = Random.Range(_desPos.position.x - midx, _desPos.position.x + midx);   //中心坐标加减边界获得随机范围的X值 下同
        float y = Random.Range(_desPos.position.y - midy, _desPos.position.y + midy);
        Vector3 hitPos = new Vector3(x, y, _desPos.position.z);  //最后随机出射门点位(目标点)
        return hitPos;
    }   
}

你把我的球变成你的气泡 把我的球门变成你气泡要到达的一个规定范围的区域  然后在下面也设置一个相同的区域 即可

回复

使用道具 举报

排名
17951
昨日变化
706

4

主题

21

帖子

73

积分

Rank: 2Rank: 2

UID
195502
好友
0
蛮牛币
0
威望
0
注册时间
2016-12-23
在线时间
22 小时
最后登录
2017-12-13
 楼主| 发表于 7 天前 | 显示全部楼层
就是给定一个背景范围,然后在底部自由的生成一些气泡图片,然后自由的朝不同方向上升,这种效果怎么做?
[发帖际遇]: 一个袋子砸在了 qq407923698 头上,qq407923698 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

排名
12893
昨日变化
230

0

主题

19

帖子

95

积分

Rank: 2Rank: 2

UID
208421
好友
0
蛮牛币
141
威望
0
注册时间
2017-2-24
在线时间
28 小时
最后登录
2017-12-12
发表于 7 天前 | 显示全部楼层
看你图的意思是直线上升,对吧。既然你给定了范围,那就通过判断来实现,更改 y 值,使其移动,到了边界后,再执行其它状态

回复

使用道具 举报

3偶尔光临
239/300
排名
11387
昨日变化
175

5

主题

112

帖子

239

积分

Rank: 3Rank: 3Rank: 3

UID
252311
好友
3
蛮牛币
435
威望
0
注册时间
2017-11-3
在线时间
56 小时
最后登录
2017-12-13
发表于 7 天前 | 显示全部楼层
想做成平面的还是3D的?

回复

使用道具 举报

4四处流浪
459/500
排名
4350
昨日变化
15

2

主题

21

帖子

459

积分

Rank: 4

UID
182891
好友
0
蛮牛币
671
威望
0
注册时间
2016-11-11
在线时间
168 小时
最后登录
2017-12-13
发表于 13 小时前 | 显示全部楼层
粒子特效撒
[发帖际遇]: ZHANGXIN702 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表