Tag: unity3d

在Unity 2D中移动简单对象

我试图在Unity中移动一个简单的Object ,但我收到以下错误消息: cannot modify the return value of unityengine.transform.position because itar is not variable 这是我的代码: using UnityEngine; using System.Collections; public class walk : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { float movespeed = 0.0f; movespeed++; transform.position.x = transform.position.x + […]

团结加速

我试图在Unity中模拟加速和减速。 我已编写代码以在Unity中生成轨道,并根据时间将对象放置在轨道上的特定位置。 结果看起来有点像这样。 我目前的问题是样条曲线的每个部分都是不同的长度,并且立方体以不同但均匀的速度在每个部分上移动。 这导致在截面之间转换时立方体的速度突然跳跃。 为了尝试解决这个问题,我试图在GetTime(Vector3 p0, Vector3 p1, float alpha)方法上使用Robert Penner的缓动方程 。 然而,虽然这确实有所帮助,但这还不够。 在转换之间仍然存在速度跳跃。 有没有人对如何动态缓解立方体的位置使其看起来像加速和减速,没有轨道段之间的大幅度跳跃有任何想法? 我编写了一个脚本,显示了我的代码的简单实现。 它可以附加到任何游戏对象。 为了便于查看代码运行时发生的情况,请附加到多维数据集或球体之类的内容。 using System.Collections.Generic; using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif public class InterpolationExample : MonoBehaviour { [Header(“Time”)] [SerializeField] private float currentTime; private float lastTime = 0; [SerializeField] private float timeModifier = 1; [SerializeField] private bool running = […]

在Coroutine中“yield return 0”和“yield return null”之间有什么区别?

我很新,对“ yield ”有点困惑。 但最后我理解使用WaitForSeconds它是如何工作的 但我看不出“ yield return 0 ”和“ yield return null ”之间的区别。 他们都在等待下一帧执行? 对不起,我的英语不好。 非常感谢你。

在现代Unity3D中捏和其他多指手势?

在现代Unity3D中,我们使用IPointerDownHandler系列调用。 关于IPointerDownHandler系列调用, public class FingerMove:MonoBehaviour, IPointerDownHandler… { public void OnPointerDown (PointerEventData data) { 当然,他们太棒了 处理单个触摸。 但是你如何以严肃的方式处理多种接触 ? 你可以“手工完成所有这一切”来跟踪你自己的动作,但看起来令人难以置信的Unity会希望你为那些绝对基本的东西做到这一点。 (我的意思是 – 它是一个游戏引擎。当然,我也可以编写我自己的渲染和物理!) 这是一个基本上“牛仔编程”的例子,只是手工完成而没有软件工程。 什么是真正的解决方案? // // example of programming a pinch (as well as swipes) using modern Unity // // here we are forced to track “by hand” in your own code // how many fingers […]

将Sprite对象数组合成一个Sprite – Unity

我在Unity中有一组Sprite对象。 它们的大小取决于加载的图像。 我想将它们像平铺地图并排组合成一个图像。 我希望它们的布局就像你正在形成一系列图像,一个接一个。 (注意:没有一个在另一个之上)我怎么能这样做? 我正在组合的原因(仅适用于那些想知道的人)是因为我正在使用polygon2D Collider。 由于当我并排使用多个碰撞器时发生了一些奇怪的行为,我决定在添加一个大的多边形碰撞器之前组合图像。 请注意,这些事情发生在运行时。 我不能只创建一个大图像并加载,因为图像的顺序只在运行时确定。 我希望能得到一些帮助。 谢谢。

signalr unity3d连接

我对信号员来说还是个新手。 我使用信号器核心在单位和信号器之间建立连接,但我的代码根本没有返回任何东西。 这让我想知道我的代码是否真的有效。 在我建立连接之后,unity将等待服务器端调用一个函数然后它将执行它需要做的事情。 这是我的代码: using System.Collections; using System.Collections.Generic; using UnityEngine; using Microsoft.AspNetCore.SignalR.Client; public class tyrNewSignalR : MonoBehaviour { void Start() { var connection = new HubConnectionBuilder() .WithUrl(“http://api-dev-vrcafe.azurewebsites.net/restart”) .WithConsoleLogger() .Build(); connection.On(“Restart”, data => { Console.WriteLine($”Received: {data}”); // Create unity part // Unity logic Debug.Log(“Connection Success!”); cleanCart(); }); connection.On(“Cart”, data => { Console.WriteLine($”Received: {data}”); // Create […]

处理对象之间的交互

我目前正在团结一致做几场比赛。 我正在使用C#。 我通常对游戏中的代码感到满意,我知道如何让它“优雅”,可以这么说。 我非常擅长编码单个元素(Say,Asteroids中的宇宙飞船)。 但我对我的代码感到满意,直到我达到一个对象需要与另一个对象交互的程度。 在那之后它变成了代码意大利面,我总是放弃这个项目。我还没有找到一种处理事物的优雅方式。 我相信我已经在互联网的各个地方提出过要求,但我似乎不断回到这一点。 有没有处理对象之间交互的常用方法? 什么都不觉得hacky? 我的最新项目再次出现了这个问题。 这是一个Unity项目,一个2d sidescroller。 检测我是否用我的角色命中“尖峰”包括检查碰撞对象标签并查看它是否是“尖峰”。 但是我的所有“死亡”代码都包含在播放器中,而不是尖峰。 除了带有标签的网格对撞机之外,尖峰不是其他任何东西。 这感觉不对。 所以stackoverflow,你们怎么处理这个?

如何使用Unity3D将AndroidJavaObject中的变量转换为C#类

我找不到如何从C#中的AndroidJavaObject获取ListArray变量。 我正在尝试使用Count为ListArray中存储为AndroidJavaObject的项目数创建for函数。 但我需要知道如何从AndroidJavaObject获取Count以及如何正确使用它。 这是我用来获取变量的,也注意到“packages”不是AndroidJavaObject[] 。 AndroidJavaClass jc = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”); AndroidJavaObject currentActivity = jc.GetStatic(“currentActivity”); int flag = new AndroidJavaClass(“android.content.pm.PackageManager”).GetStatic(“GET_META_DATA”); AndroidJavaObject pm = currentActivity.Call(“getPackageManager”); AndroidJavaObject packages = pm.Call(“getInstalledApplications”, flag); 在这一点上它是非常基本的,但它的工作得益于这个如何使用Unity3D安装应用程序列表的一些帮助? 到目前为止的进展停止了获取图标,其他一切工作完美,我需要一种方法来获得一个链接到图标的string ,或者图标的Texture2D 。 另一种选择是使用包含drawable的AndroidJavaObject ,就好像它是Texture2D一样。 我不知道怎么做到这一点。 我的另一个想法是将它转换为另一个变量,比如可以传输和转换回来的byte[] ,但是我还没有找到一种在这种情况下工作的方法。 int count = packages.Call(“size”); AndroidJavaObject[] links = new AndroidJavaObject[count]; string[] names = new string[count]; Texture2D[] icons = new […]

Unity3D在C#中寻找使用纹理绘制的setPixels示例

我需要找到一种方法,允许我使用纹理绘制一个gameObject,目标是克隆这个游戏 我已经认为我可以通过使用我在这里解释的depthMask解决方案伪造绘画function,但是,经过数小时的研究后,似乎可以使用setPixels,setPixel和setPixels32来创建真实的绘画,但由于某种原因所有的setPixels都相关脚本参考的主题是在JavaScript中,我试图将它移植到c#,但我总是有错误,加上它是一种复杂的方法,脚本参考不能很好地解释它,所以我希望有人可以请我写信给我使用setPixels来使用另一个纹理更改对象纹理的一部分的示例? 或者我们可以将整个对象alpha设置为0,当我们点击它时,我们将该纹理alpha的一部分更改为1? 我真的希望这个话题不会因为它的多样性而被关闭,我尽力在解释整个情况时提出一个直截了当的问题。 谢谢 编辑: 几个小时之后,我已经达到了一个非常酷的结果,我认为这可能是达到我的目标的好方法,这个脚本允许用另一个选择的纹理替换材质纹理中的特定像素(目标纹理必须大小相同,可读) // the texture that i will paint with public Texture2D targetTexture ; //temporary texture Texture2D tmpTexture; void Start () { //setting temp texture width and height tmpTexture = new Texture2D (targetTexture.width, targetTexture.height); for (int y =0; y<tmpTexture.height; y++) { for (int x = 0; x<tmpTexture.width; x++) { //filling […]

如何获得Unity3D View in wpf winform

嗨,我在韩国软件办公室工作,开发android和Unity3D …… 我想在查看Unity3D项目中获取WPF winform的示例代码。 http://forum.unity3d.com/threads/10855-Unity-in-a-Window/page3 ,这是参考站点。 和参考资料。 例如:如果单击Button(在WPF中),则在wpf viewer中创建对象unity3d。 请帮帮我…我想要完美的代码。 不抽象……