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

扫一扫,访问微社区

开发者专栏

关注:1702

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 1714|回复: 25

[仅为年时] unity发布webplayer与javaweb服务器的那些破事——a

[复制链接]  [移动端链接]
8常驻蛮牛
5417/10000
排名
955
昨日变化

226

主题

1252

帖子

5417

积分

Rank: 8Rank: 8

UID
73452
好友
38
蛮牛币
1915
威望
0
注册时间
2015-2-6
在线时间
1543 小时
最后登录
2017-5-27

专栏作家蛮牛译员社区QQ达人活力之星蛮牛哥认证开发者

QQ
发表于 2017-4-1 17:53:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 仅为年时 于 2017-4-1 17:46 编辑

背景:

由于需要做一个在web端用户可以自己构建场景,然后还可以保存场景以便于下次加载。但是。。。
但是有几个很头疼的限制:

1、用NGUI(这个是小问题,之前没用过,大不了我研究研究,只是熟练度的问题)。
2、用webplayer(最坑爹的就是它,限制辣么大,各种出问题,测试也麻烦)。
3、还是web端的问题,不能本地存储,所以直接把数据写成json串形式的字符串通过表单发送到服务器(好扯淡,关键是不能本地存个txt文件测试)。

扯了这么多,就是想吐槽一下,干嘛要用unity的webplayer,咱怎么就不能做成PC端呢,至少不得节省三分之一的时间啊!

开始:

首先来做准备,做一个从UI中拖出物体并创建,这里用的不是拖出来,是点击生成,然后跟随鼠标位置,NGUI里有一个拖出来的例子,效果和我们做的类似。
UI部分我就不说了,NGUI添加几个图片按钮就行。

放张效果图:
magic2.gif


直接说一下思路,就不一步一步来了,原理就是,点击对应的图标按钮在场景中实例化我们需要的创建的prefab,用instantiate,这个相信大家都会。
然后通过鼠标位置发射射线,获取射线的碰撞点位置(与地面的),更新实例出的物体的位置就是鼠标射线碰撞的位置。网上也有相应的代码,我这里直接贴出来

[C#] 纯文本查看 复制代码
using UnityEngine;
using System.Collections;

public class CreatePreObj : MonoBehaviour {

    GameObject CreateObject;
    bool moveFlag = false;

    // Use this for initialization
    void Start () {
        
        }
        
        // Update is called once per frame
        void Update () {
        if (moveFlag)
        {
            RaycastHit hit;// = new RaycastHit();
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            Physics.Raycast(ray, out hit, 100);
            //Debug.DrawLine(cam.transform.position, ray.direction,Color.red);
            if (null != hit.transform)
            {
                //print(hit.point);//鼠标点击的坐标
                CreateObject.transform.position = hit.point;
                CreateObject.transform.up = hit.normal;
                CreateObject.transform.Translate(Vector3.up * 0.1f * CreateObject.transform.localScale.y, Space.Self);
            }

            if (Input.GetMouseButtonDown(0))
            {
                moveFlag = false;
            }
        }
    }

    public void ButtonClick_shoulder()
    {
        CreateObject = (GameObject)Instantiate(Resources.Load("Prefabs/Orc Shoulders 1"), Input.mousePosition, transform.rotation);
        moveFlag = true;
    }
    public void ButtonClick_bracer()
    {
        CreateObject = (GameObject)Instantiate(Resources.Load("Prefabs/Orc Bracers 1"), Input.mousePosition, transform.rotation);
        moveFlag = true;
    }
    public void ButtonClick_capsule()
    {
        CreateObject = (GameObject)Instantiate(Resources.Load("Prefabs/Capsule"), Input.mousePosition, transform.rotation);
        moveFlag = true;
    }
}


这一篇先写到这里,下篇实现场景的保存与加载。






.

评分

参与人数 1鲜花 +8 收起 理由
unity菜鸟 + 8 赞一个!

查看全部评分


回复

使用道具 举报

6蛮牛粉丝
1105/1500
排名
2915
昨日变化
25

1

主题

438

帖子

1105

积分

Rank: 6Rank: 6Rank: 6

UID
171030
好友
3
蛮牛币
1364
威望
0
注册时间
2016-9-22
在线时间
292 小时
最后登录
2017-5-30

活力之星

发表于 2017-4-1 19:53:46 | 显示全部楼层
支持,存下来慢慢看,话说还没做过unity webplayer的东西,不过当发现4399居然有unity3d的游戏,顿时感觉震惊了

回复 支持 反对

使用道具 举报

4四处流浪
329/500
排名
8492
昨日变化
3

0

主题

181

帖子

329

积分

Rank: 4

UID
161170
好友
0
蛮牛币
516
威望
0
注册时间
2016-8-8
在线时间
60 小时
最后登录
2017-5-12
发表于 2017-4-1 22:21:38 | 显示全部楼层
支持支持!

回复

使用道具 举报

排名
28989
昨日变化
11

0

主题

25

帖子

52

积分

Rank: 2Rank: 2

UID
196677
好友
0
蛮牛币
6
威望
0
注册时间
2016-12-28
在线时间
21 小时
最后登录
2017-4-21
发表于 2017-4-3 11:06:53 | 显示全部楼层

支持支持!

回复

使用道具 举报

3偶尔光临
280/300
排名
7383
昨日变化
1

4

主题

81

帖子

280

积分

Rank: 3Rank: 3Rank: 3

UID
191951
好友
0
蛮牛币
107
威望
0
注册时间
2016-12-21
在线时间
83 小时
最后登录
2017-5-19
发表于 2017-4-4 10:53:13 | 显示全部楼层
CreateObject.transform.Translate(Vector3.up * 0.1f * CreateObject.transform.localScale.y, Space.Self);这句话看不懂,楼主能不能解释一下,麻烦了,还有我按照你这个代码写出来的东西为什么会自动朝着主相机移动?

回复 支持 反对

使用道具 举报

4四处流浪
357/500
排名
10809
昨日变化
3

0

主题

208

帖子

357

积分

Rank: 4

UID
200434
好友
0
蛮牛币
453
威望
0
注册时间
2017-1-10
在线时间
95 小时
最后登录
2017-5-26
发表于 2017-4-5 09:40:07 | 显示全部楼层
66666666的额

回复

使用道具 举报

8常驻蛮牛
5417/10000
排名
955
昨日变化

226

主题

1252

帖子

5417

积分

Rank: 8Rank: 8

UID
73452
好友
38
蛮牛币
1915
威望
0
注册时间
2015-2-6
在线时间
1543 小时
最后登录
2017-5-27

专栏作家蛮牛译员社区QQ达人活力之星蛮牛哥认证开发者

QQ
 楼主| 发表于 2017-4-5 09:43:55 | 显示全部楼层
本帖最后由 仅为年时 于 2017-4-5 11:54 编辑
smz2287711279 发表于 2017-4-4 10:53
CreateObject.transform.Translate(Vector3.up * 0.1f * CreateObject.transform.localScale.y, Space.Self ...

CreateObject.transform.up = hit.normal;这句话就是让我们创建出来的物体与被附着物体永远保持垂直,比如说一个球,你创建一个人不管在球的哪个位置都是垂直于球表面的,然后你问这句话是控制离球面的距离。自动朝着主相机移动是不是鼠标射线没有检测到地面,你把地面放大,让鼠标一直都能检测到地面应该就没问题了吧?

回复 支持 反对

使用道具 举报

排名
34871
昨日变化
17

0

主题

7

帖子

16

积分

Rank: 1

UID
154016
好友
0
蛮牛币
13
威望
0
注册时间
2016-6-28
在线时间
5 小时
最后登录
2017-4-5
发表于 2017-4-5 10:43:09 | 显示全部楼层
仅为年时 发表于 2017-4-5 09:43
这句话就是让我们创建出来的物体与被附着物体永远保持垂直,比如说一个球,你创建一个人不管在球的哪个位 ...

Translate不是平移么= =

回复 支持 反对

使用道具 举报

8常驻蛮牛
5417/10000
排名
955
昨日变化

226

主题

1252

帖子

5417

积分

Rank: 8Rank: 8

UID
73452
好友
38
蛮牛币
1915
威望
0
注册时间
2015-2-6
在线时间
1543 小时
最后登录
2017-5-27

专栏作家蛮牛译员社区QQ达人活力之星蛮牛哥认证开发者

QQ
 楼主| 发表于 2017-4-5 11:55:12 | 显示全部楼层
loveCC 发表于 2017-4-5 10:43
Translate不是平移么= =

不好意思,刚说错了,没仔细看你问的,我重新回答了

回复 支持 反对

使用道具 举报

8常驻蛮牛
5417/10000
排名
955
昨日变化

226

主题

1252

帖子

5417

积分

Rank: 8Rank: 8

UID
73452
好友
38
蛮牛币
1915
威望
0
注册时间
2015-2-6
在线时间
1543 小时
最后登录
2017-5-27

专栏作家蛮牛译员社区QQ达人活力之星蛮牛哥认证开发者

QQ
 楼主| 发表于 2017-4-5 14:25:19 | 显示全部楼层
仅为年时 发表于 2017-4-5 09:43
CreateObject.transform.up = hit.normal;这句话就是让我们创建出来的物体与被附着物体永远保持垂直,比如 ...

还有就是去掉碰撞

回复 支持 反对

使用道具 举报

4四处流浪
487/500
排名
4521
昨日变化
3

7

主题

56

帖子

487

积分

Rank: 4

UID
85210
好友
2
蛮牛币
1098
威望
0
注册时间
2015-3-26
在线时间
214 小时
最后登录
2017-5-5
发表于 2017-4-5 17:48:40 | 显示全部楼层
webplayer 不是就要被淘汰了么,现在不是支持webgl么?不过听说web GL坑也很多

回复 支持 反对

使用道具 举报

3偶尔光临
165/300
排名
13973
昨日变化
2

0

主题

123

帖子

165

积分

Rank: 3Rank: 3Rank: 3

UID
209789
好友
0
蛮牛币
333
威望
0
注册时间
2017-3-3
在线时间
11 小时
最后登录
2017-4-14
发表于 2017-4-5 20:45:39 | 显示全部楼层

支持支持!谢谢








回复 支持 反对

使用道具 举报

3偶尔光临
280/300
排名
7383
昨日变化
1

4

主题

81

帖子

280

积分

Rank: 3Rank: 3Rank: 3

UID
191951
好友
0
蛮牛币
107
威望
0
注册时间
2016-12-21
在线时间
83 小时
最后登录
2017-5-19
发表于 2017-4-6 11:46:52 | 显示全部楼层
仅为年时 发表于 2017-4-5 09:43
CreateObject.transform.up = hit.normal;这句话就是让我们创建出来的物体与被附着物体永远保持垂直,比如 ...

嗯,理解了,谢谢,不过它会自动朝主相机移动还是没有解决,除了代码需要在unity界面设置什么东西吗,比如地面标签之类的?

回复 支持 反对

使用道具 举报

8常驻蛮牛
5417/10000
排名
955
昨日变化

226

主题

1252

帖子

5417

积分

Rank: 8Rank: 8

UID
73452
好友
38
蛮牛币
1915
威望
0
注册时间
2015-2-6
在线时间
1543 小时
最后登录
2017-5-27

专栏作家蛮牛译员社区QQ达人活力之星蛮牛哥认证开发者

QQ
 楼主| 发表于 2017-4-6 13:29:41 | 显示全部楼层
smz2287711279 发表于 2017-4-6 11:46
嗯,理解了,谢谢,不过它会自动朝主相机移动还是没有解决,除了代码需要在unity界面设置什么东西吗,比 ...

应该是你的物体没有去碰撞
把boxcollider去了就好了

回复 支持 反对

使用道具 举报

3偶尔光临
225/300
排名
11404
昨日变化
5

5

主题

89

帖子

225

积分

Rank: 3Rank: 3Rank: 3

UID
63446
好友
2
蛮牛币
298
威望
0
注册时间
2014-12-25
在线时间
81 小时
最后登录
2017-5-25
发表于 2017-4-6 17:27:27 | 显示全部楼层
webplayer2年前好像被html5新规则限制很严重,几乎都是浏览器沙盒的限制,不知道现在怎么样,在pc也不是没问题的,你做过就知道了,你所谓的pc,只是windows,其实现在很大一部分需求是mac了,当了要兼顾mac系统的时候,你会发现又是一个大坑
unity最大的优势的跨平台,各种平台都涉猎,有坑也有解决办法,没什么大问题(真的是框架很不错)

我是很有兴趣知道现在的webplayer功能有哪些,期待博主分享

回复 支持 反对

使用道具 举报

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

本版积分规则

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