用unity编写游戏的时候,怎么实现跟BattleGround一样的鼠标效果
来源:互联网 发布:淘宝seo冷门词 编辑:程序博客网 时间:2024/06/07 13:15
我们知道unity里面有第一人称控制器,直接用这个就能实现走路,四周看。但是,这个第一人称控制器的鼠标总是显示在屏幕中,而且它的位置不受控制,在屏幕全部范围都能移动,这不是我们想要的效果。那如何实现像CS一样,有个瞄准的准心在屏幕中央,然后也可以四周转动,当需要选择物品,点击东西的时候鼠标再出现呢?
1、首先要添加一个GUITexture 的图片,就是一个瞄准准心的图片,或者是任意一个你想要的游戏中显示在中心位置的图标。
2、将游戏设置成全屏模式
3、在UpDate()函数中添加一个检测是否要隐藏鼠标的bool变量,当该值为真时,添加Screen.showCursor=false。并且要将鼠标的位置SetCursorPos(Screen.currentResolution.width/2,Screen.currentResolution.height/2)。当该值为假时,Screen.showCursor=true。
4、改变该值,就要通过程序中对对话框的控制,当需要显示对话框时,在那部分的代码中将3中设置的布尔变量改为false,当关闭对话框时,改为true。
需要注意的是,对鼠标的控制SetCursorPos()这个函数一般是有C#脚本写的,如果你其他的代码用的是js写的的话,需要通过js脚本调用C#脚本中的代码。这时候可以参考另一个博客:http://blog.csdn.net/blues1021/article/details/48780315
这个方法可以用。
Unity3D中一些脚本的方法只能用在js中,在C#中是无效的,而C#可以与服务器端通讯,JS本身却不行。而且,如果需要用到js调用c#的问题,js会比c#先编译,所以在mac里编译iOS的时候会出错,提示为无法找到那个C#类。所以势必会遇到这两种语言脚本中方法的互相调用。
解决方法:
1.首先在你的Unity3D程序里建一个Plugins的文件夹,注意必须是这个名字!
2.将要调用的C#类里的系统命名空间去掉,只保留必须要用的命名空间,类名后面的父类也去掉,将里面的方法设为静态的方法。
3.将这个C#类方法Plugins文件夹下。
4.在js里就可以直接引用了,如:test.test();
实例:两个文件 test1.js 和 test2.cs。
test1.js
function OnGUI()
{
if(GUI.Button(Rect(25,25,100,30),"JS Call CS" ))
{
var c = gameObject.GetComponent("test2");
c.PrintTest();
}
}
function testPrint()
{
print("CS Call JS");
}
test2.cs
using UnityEngine;
using System.Collections;
public class test2: MonoBehaviour {
void OnGUI()
{
if(GUI.Button(new Rect(25,70,100,30), "CS Call JS"))
{
test1 c = (test1)gameObject.GetComponent("test1");
c.testPrint();
}
}
void PrintTest()
{
print("JS Call CS");
}
}
这里必须要注意的是JS文件必须是在 "Standard Assets"、 "Pro Standard Assets" 和 "Plugins" 这三个目录中的任何一个里,而CS文件不能与JS文件在一个目录中。原因是,这三个目录里的脚本被最先编译,"Editor"目录里的稍后编译,其他的脚本最后编译。目前unity3d的2.5的版本似乎不支持C# 3.0,所以无法用var的关键字,这样就只支持强类型,所以如果在一个目录下则CS文件无法读取JS里的方法,也就无法编译通过了。而JS调用CS方法则无此限制。
这里我写了大概的步骤,如果有需要的人我可以把我的代码给你参考。
- 用unity编写游戏的时候,怎么实现跟BattleGround一样的鼠标效果
- block 实现跟 委托一样的效果
- 怎么实现短信列表一样的数据绑定效果!
- 表单登录的时候,敲回车键登录(效果同鼠标点击登录一样)
- Unity鼠标悬停实现图片的浮动效果
- 【游戏渲染】unity海边波浪效果的实现
- 跟viewpagerIndicator一样的效果,但是不用引用library包
- 怎么像safari一样滑动的时候隐藏navigationbar?
- 怎么像safari一样滑动的时候隐藏navigationbar?
- 自定义Toast,跟系统的一样好用,一样使用!!!
- 用css实现的鼠标悬停效果
- [iOS/Swift]简单实现跟系统一样的毛玻璃效果的View,可在上面加控件,可移动
- Unity中扫雷游戏的脚本编写
- unity 实现了鼠标滚动放大和缩小物体暨拉近拉远相机的效果
- 鼠标经过时候边框的实现
- jtable中某列实现html中a标签效果,鼠标移到上面去的时候显示手型效果
- unity 实现鼠标对相机的操作
- Unity物体跟随鼠标的实现
- 计算机名词解释
- Collider(碰撞器)与IsTrigger(触碰器)详解
- JavaScript中的错误和调试
- ARC 064F Rotated Palindromes DP(回文移位,循环节)
- TabLayout中使用selector
- 用unity编写游戏的时候,怎么实现跟BattleGround一样的鼠标效果
- abstract class和interface的区别
- HDU-6040 Hints of sd0061(线性找第k小)
- 删除目录
- DNS+SSH混合隧道实战-------iodine,ssh
- CentOS编译安装Apache 2.4.x时报错:configure: error: Bundled APR requested but not found at ./srclib/. Downlo
- Hdu 5242 Game【Dfs+贪心】好题~
- 查找正在运行或上一次执行的sql
- eclipset调试