Tag: unity3d

FPS相机具有y轴限制到一定角度

我正在开始一个新游戏,现在我的玩家可以查看360 *但是我想限制玩家在天空中向下看的距离(直线向上和向下)。 这是我的代码 Vector2 mouseLook; Vector2 smoothV; public float sensitivity = 5.0f; public float smoothing = 2.0f; GameObject player; void Start () { player = this.transform.parent.gameObject; } // Update is called once per frame void Update () { var md = new Vector2(Input.GetAxisRaw(“Mouse X”), Input.GetAxisRaw(“Mouse Y”)); md = Vector2.Scale(md, new Vector2(sensitivity * smoothing, sensitivity * […]

处理未在UI上启动的触摸

我寻求一种方法来处理不在Unity Engine中的UI元素上启动的触摸。 这样做的目的是旋转,平移和放大“地图”(从现在开始应该这样称呼它)。 但是,如果触摸事件在任何UI元素上,则应由该UI元素而不是地图处理。 我认为一个这样的例子是Google的Maps android应用程序。 我尝试了几种解决方案: 鼠标事件 – 但它将所有触摸组合成一个单独的事件 Input.touches – 但我不知道如何找出是否应该由另一个UI元素处理触摸(我想尽可能不使用“if”来检查触摸是否在任何其他UI元素上,因为这可能certificate是真正的性能问题)

如何从Unity中的代码安装Android apk

我找到了Java代码片段。 如何在C#Unity中编写这样的代码? Intent intent = new Intent(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType(Uri.fromFile(new File(“link to downloaded file”)),”application/vnd.android.package-archive”); startActivity(intent);

为Unity构建C ++插件

试图创建我的第一个插件。 cpp代码是: 标题: #pragma once #ifndef __MY_DLL_H #define __MY_DLL_H extern “C” int add_1(int number); #endif 资源: //FirstDLL.cpp #include “FirstDLL.h” extern “C” int add_1(int number) { return number + 1; } 然后我编译并将DLL放在Assets/Plugins文件夹中,dll文件是FirstDLL.dll 。 从统一方面来说,我有一个简单的C#脚本用于组件: using UnityEngine; public class MyBehaviour : MonoBehaviour { // Use this for initialization [Header(“Nuts!”)] public int my_curr_val; void Start () { } […]

使用VideoPlayer播放360立体video

我想在Android上的Unity中在虚拟现实中播放立体360度video。 到目前为止,我一直在做一些研究,我有两个摄像头用于右眼和左眼,每个摄像头围绕着它们。 我还需要一个自定义着色器来在球体内部渲染图像。 我通过将y-tiling设置为0.5来使图像的上半部分显示在一个球体上,而下半部分显示在另一个球体上,y-tile为0.5,y-offset为0.5。 有了这个,我可以显示3D 360度图像已经正确 。 整个想法来自本教程 。 现在对于video,我需要控制video速度,所以事实certificate我需要来自新的Unity 5.6测试版的VideoPlayer。 现在我的设置到目前为止需要video播放器在两个球体上播放video,其中一个球体播放上部(一只眼睛)而另一个video播放下部(另一只眼睛)。 这是我的问题 :我不知道如何让video播放器在两种不同的材料上播放相同的video(因为它们具有不同的平铺值)。 有没有办法做到这一点? 我得到了一个提示,我可以使用相同的材​​料并通过UV实现平铺效果,但我不知道它是如何工作的,我甚至没有让video播放器使用相同的材​​料在两个对象上播放video他们都。 我在这里有截图。 右侧球体只有材质videoMaterial。 没有平铺,因为我必须通过紫外线这样做。 走哪条路怎么办? 我在正确的路上吗?

在鼠标位置实例化对象

我已经创建了一个脚本,它应该根据鼠标位置实例化gameobject,但是出了问题。 它只在一个位置和屏幕中间实例化。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class LineInstantiater : MonoBehaviour { public GameObject lineprefab; private GameObject linehandler; private Vector3 mousepos; void Update(){ if (Input.GetMouseButton (0)) { mousepos = Camera.main.ScreenToWorldPoint (Input.mousePosition); linehandler = Instantiate (lineprefab,Camera.main.ScreenToWorldPoint(Input.mousePosition),Quaternion.identity) as GameObject ; linehandler.transform.position = mousepos; } } } 请告诉我我的脚本有什么问题。

Unityscript / Javascript是否已停止使用?

我正在使用Unity 2017.2.0b5 。 我试图帮助那些刚才提出有关Unityscript 问题的人,但我注意到: 资产>创建>存在C#脚本但缺少资产>创建> JavaScript 。 “项目”选项卡和“添加组件”菜单上的“创建新脚本”菜单也缺少此function。 我阅读了发行说明,但找不到有关Unityscript / Javascript的任何信息。 Unity刚刚杀死像Boo这样的Unityscript / JavaScript支持吗?

向上移动/移动对象然后将第一个元素移动到最后一个索引

我正在Unity3D中构建一个游戏,我试图通过启用和禁用它们而不是实例化和销毁它们来重用GameObjects。 我在GameObject数组中有10个弹簧,每次我使用弹簧时我想从数组中的第一个元素中取出它,将该数组的所有剩余元素移位,然后将第一个Object移动到最后一个索引中。arrays。

在Unity中使用dynamic keyword / .NET 4.6function

我正在尝试将GraphQL实现到Unity3D(版本2017.1.0f3 Personal)。 我使用的是.NET 4.6(实验版),但尽管如此,Unity还是不支持动态关键字。 这很奇怪,因为.NET 4.0是.NET的一部分。 在Unity中除外。 我正在谷歌搜索一些解决方案如何让它工作,但没有动态关键字的解决方案。 错误是这样的: Severity Code Description Project File Line Suppression State Error CS1980 Cannot define a class or member that utilizes ‘dynamic’ because the compiler required type ‘System.Runtime.CompilerServices.DynamicAttribute’ cannot be found. Are you missing a reference? skiing-prototype (1) D:\skiing-prototype (1)\Assets\Scripts\GraphQL.cs 62 Active 这是使用GraphQL C#客户端的唯一警告。 还有人试过它才能让它发挥作用吗? 我还没有找到任何更大的努力来让它运行起来。 编辑: 我在这里使用这个客户端: https […]

Unity3D UI,计算位置拖动项目?

现在,在Unity中拖动UI元素非常容易:制作一些UI项目。 添加组件 – >事件 – > 事件触发器 。 放在下面的脚本上。 单击以添加四个明显的触发器。 你完成了。 然而。 我完全迷失了指针坐标和UI坐标之间的关系(如RectTransform中所见,等等)。 在下面的DragIt中:如何在手指下正确移动UI面板? 假设您有一个大面板,十个UIButton坐在面板上,按钮上有Dragster 。 RectTransform坐标和鼠标指针之间的关系是什么… 简而言之,如何在DragIt()下方移动其中一个按钮? /* modern Unity drag of UI element */ using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using UnityEngine.EventSystems; public class Dragster:MonoBehaviour { public int index; // number each of your UI items static bool beingDragged = false; static int […]