Unity3D客户端在游戏场景中创建阻挡并用二进制导出

在公司的项目中给策划做了一个可以在场景中创建简单阻挡物体的小工具,也许大家有用的到的,拿出来分享一下。

整体思路是把地形用一米见方的格子分隔,然后在格子里放置cube代替阻挡,存盘时用一维数组,1表示阻挡,0表示没有阻挡。如果要实现更精确的阻挡也可以直接保存位置和旋转信息。本人偷懒只实现了在Game视图中创建阻挡,想要在Scene视图中实现如Unity自身的树木创建系统就留给大家自己研究,哈哈,也可以留言讨论啦。吐舌头


首先上效果图


  • 首先我们要给镜头实现一个可以在场景中漫游并放置阻挡的脚本有注释的哦!

<pre name="code" class="csharp">///<summary> 
///作用:<实现在场景中自由放置Cube,wasd移动位置,按住鼠标右键旋转镜头,鼠标左键放置阻挡,按住左shift点左键删除阻挡,滚轮也可前后移动>
///作者:易山松
///编写日期:<2014-7-18>
///</summary>

using UnityEngine;
using System.Collections;

[AddComponentMenu("Scrips/CreateBlock")]
public class CameraController : MonoBehaviour
{

    // 鼠标滚轮灵敏度
    public float MouseWheelSensitivity = 3f;
    //镜头旋转速度
    public float xSpeed = 250.0f;
    public float ySpeed = 120.0f;
    //镜头移动速度
    public float moveFactor = 10f;
    //镜头旋转角度限制,不然就转晕了
    public int yMinLimit = -20;
    public int yMaxLimit = 80;

    private float x = 0.0f;
    private float y = 0.0f;
    //右键是否按下标志
    private bool mousedown;
    void Start()
    {
        Vector3 angles = transform.eulerAngles;
        x = angles.y;
        y = angles.x;

        // Make the rigid body not change rotation  
        if (rigidbody)
        {
            rigidbody.freezeRotation = true;
        }
    }

    // Update is called once per frame  
    void Update()
    {
        Move();
        CreateCube();

    }
    void 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值