标签: unity-game-engine

在Unity 5中使用.NET 4.5代码

我正在使用Unity3D版本5开发游戏.游戏应该使用已经在C#.NET4.5引擎中编程的严格业务规则.使用Xamarin/Mono,我们希望在Windows,Android,其他方面使其可用...

我尝试将引擎构建到dll中,并将其用作Unity中的托管插件.但Unity使用旧版Mono来编译整个游戏并拒绝使用.NET 4.5 dll.

我真的需要使用这个代码,我考虑将它降级到.NET 3.5,但鉴于已经在引擎上完成的工作,它不是一个可接受的解决方案.

关于android,我认为使用Xamarin获取原生的android代码并将其用作Unity中的本机插件.现在我需要Windows的解决方案.我正在研究如何使用C++中的C#代码来创建一个非托管的DLL,但我很难理解COM interop,C++/CLI或其他方法之间适用的方式.

有没有人知道如何在Unity中包含来自.NET 4.5的代码而没有/只需要很少的努力?

.net c# mono unity-game-engine

19
推荐指数
3
解决办法
4万
查看次数

与Unity使用Facebook插件时的ActivityNotFoundException

我正在使用Unity 5.2.2p2,Facebook Unity SDK 7.2.2和Prime31的Android IAB插件2.9.当我编译我的应用程序并在设备上运行它时,在adb日志中我看到:

I/Unity   (18149): AndroidJavaException: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.-----.----/com.facebook.unity.FBUnityLoginActivity}; have you declared this activity in your AndroidManifest.xml?
I/Unity   (18149):   at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <filename unknown>:0 
I/Unity   (18149):   at UnityEngine.AndroidJNISafe.CallStaticVoidMethod (IntPtr clazz, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in <filename unknown>:0 
I/Unity   (18149):   at UnityEngine.AndroidJavaObject._CallStatic (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0 
I/Unity   (18149):   at UnityEngine.AndroidJavaObject.CallStatic (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0 
I/Unity   (18149):   at Facebook.Unity.Mobile.Android.FBJavaClass.CallStatic (System.String methodName, System.Object[] args) …
Run Code Online (Sandbox Code Playgroud)

android facebook unity-game-engine prime31 facebook-unity-sdk

19
推荐指数
1
解决办法
1022
查看次数

如何使用自定义编辑器移动另一个Bezier曲线

我创建使用下面这是我从拿到代码贝塞尔曲线 在这里.我还制作了一个BezierPair游戏对象,它有两条贝塞尔曲线作为子对象.

从下面的相应图像和BezierPair,其中points[0]...... points[3]表示为P0...... P3:

  1. 我希望P0每个Bézier曲线在移动时始终保持不变.换句话说,我希望他们总是一起移动,同时选择关闭这个动作.

在此输入图像描述

  1. P1两条曲线是分开的.如何使P1每条曲线在相同距离的相同方向上移动?

在此输入图像描述

  1. P2两条曲线是分开的.我怎样才能让P2一个曲线镜P2沿连线另一曲线 P0P3?注意,镜像线将从曲线1在下面的例子中,因为采取curve1P2运动.如果curve2P2移动,则反射镜线将取自curve2S' P0P3.

在此输入图像描述

我不想在运行时这样做.因此必须使用自定义编辑器.我尝试在下面的代码中解决1.但是如果没有在层次结构窗口中选择BezierPair,第二条曲线的位置将不会更新

贝塞尔:

public static class Bezier {

public static Vector3 GetPoint (Vector3 p0, Vector3 p1, Vector3 p2,   Vector3 p3, float t) {
t = Mathf.Clamp01(t);
float oneMinusT = 1f - t;
return
    oneMinusT * oneMinusT …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

19
推荐指数
1
解决办法
563
查看次数

该应用与您的所有设备不兼容

在发布这个问题之前,我已经阅读了所有相关问题.

我用Unity3D开发了一款游戏并上传到Google Play.昨天它适用于所有设备,有来自其他用户的评论.今天我有几个关于Google Play上应用程序不可用的报告.它可以在GP的Web版本上使用,但是对于任何设备都不兼容,并且在GP上的移动版本中根本不可用.在开发者控制台中,所有设备都兼容: 开发控制台

并且在Web版本上它们不是(以前的所有版本都已从设备中删除): 网络Google Play

我的清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="pro.labster.xyz" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal">
  <supports-screens android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" android:anyDensity="true" />
  <application android:icon="@drawable/app_icon" android:label="@string/app_name" android:debuggable="false">
<!-- ... -->

<uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />
  <uses-feature android:glEsVersion="0x00020000" />
  <uses-feature android:name="android.hardware.touchscreen" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" />
  <uses-feature android:name="android.hardware.touchscreen.multitouch.distinct" android:required="false" />
Run Code Online (Sandbox Code Playgroud)

所以,问题是,为什么它是可利用的昨天,是当今不可用?我没有上传新版本,没有改变任何东西.该应用程序是完全免费的,其大小约为8.5 MB.

android unity-game-engine google-play

18
推荐指数
3
解决办法
1万
查看次数

如何通过代码访问RectTransform的左,右,上,下位置?

我有一个带有渲染模式世界空间集的UI画布.对于属于此画布的所有UI元素,我在编辑器的RectTransform组件中看到"left","right","top"和"bottom"变量.有没有办法通过代码访问这些变量?

unity-game-engine unity3d-gui

18
推荐指数
3
解决办法
2万
查看次数

为什么我在新的Unity5中看不到Rigidbody2D中的Fixed Angle选项?

就是这样,我看不到检查员的选项.我在旧的Unity4中看到它,但我现在不能在团结5中这样做.而且,它是在5.10版本中.请帮帮我,我是新手哈哈.

unity-game-engine

18
推荐指数
1
解决办法
1万
查看次数

使用Unity3D的IPointerDownHandler方法,但使用"整个屏幕"

在Unity中,你需要检测场景中某些东西的手指触摸(手指绘图).

在现代Unity中执行此操作的唯一方法非常简单:


第1步.在该物体上放置一个对撞机.("地面"或其他任何东西.)1

步骤2.在相机的"检查器"面板上,单击以添加物理雷达(相关的2D或3D).

步骤3.只需使用下面的示例A中的代码.

(提示 - 不要忘记确保有一个EventSystem ......有时Unity会自动添加一个,有时不会!)


太棒了,不容易.Unity最终通过UI层正确处理un /传播.在桌面,设备,编辑器等上均匀而完美地工作.万岁Unity.

都好.但是如果你想在屏幕上画画呢?

因此,您非常简单地想要"在屏幕上"从用户那里滑动/触摸/绘图.(例如,简单地说就是操作轨道摄像机.)就像在任何普通的3D游戏中,摄像机四处奔跑并移动.

你不希望手指在世界空间中的某个物体上的位置,你只需要抽象的"手指运动"(即在玻璃上的位置).

你用什么对撞机?没有对撞机你能做到吗?由于这个原因,添加对撞机似乎很愚蠢.

我们做的是这样的:

我只是做了某种平面对撞机,实际上是把它安装在相机下面.所以它只是坐在相机平截头体上并完全覆盖屏幕.

在此输入图像描述

(对于代码,则不需要使用ScreenToWorldPoint,因此只需使用示例B中的代码 - 非常简单,效果很好.)

我的问题是,使用我所描述的"镜头下相机"似乎有点奇怪,只是为了触摸玻璃.

这是什么交易?

(注意 - 请不要回答涉及Unity古老的"Touches"系统,这个系统今天对于真实项目无法使用,你不能忽视.UI使用传统方法.)


代码示例A - 在场景对象上绘图.使用ScreenToWorldPoint.

 using UnityEngine;
 using System.Collections;
 using UnityEngine.EventSystems;

 public class FingerMove:MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler
 {
     public void OnPointerDown (PointerEventData data)
     {
         Debug.Log("FINGER DOWN");
         prevPointWorldSpace =
                 theCam.ScreenToWorldPoint( data.position );
     }

     public void OnDrag (PointerEventData data)
     {
         thisPointWorldSpace =
                theCam.ScreenToWorldPoint( data.position ); …
Run Code Online (Sandbox Code Playgroud)

c# touch unity-game-engine

18
推荐指数
2
解决办法
7917
查看次数

在WPF应用程序中嵌入Unity3D应用程序

我想在WPF中开发一个新的CAD软件而不是使用WPF 3D,是否可以使用Unity3D作为我的图形引擎,它能够根据WPF中的数据对象旋转,平移,缩放和查看3D图形对象?

我问这个问题的原因是,Unity是一个游戏引擎,它使用C#作为脚本,但它不提供WPF应用程序的任何集成(将Unity嵌入到WPF中).

我在团结论坛上问了这个问题,找不到任何好的答案,所以要求更多的观众.

c# 3d wpf cad unity-game-engine

18
推荐指数
1
解决办法
1万
查看次数

Apple Mach -O Linker(Id)错误?

我正在尝试构建这个由Unity构建的xcode工作区.当我在构建项目(链接)的最后阶段修改项目后,我得到了Apple Mach -O Linker(Id)错误.我无法打开错误选项卡以查看导致错误的确切原因.所有它说的是"链接器命令失败,退出代码1(使用-v查看调用).还有两个Apple Mach -O Linker(Id)错误发生但我不知道如何解决它们.

任何帮助是极大的赞赏!

我无法展开这些标签..这是我得到的全部 这是扩展的警告标签,两个Apple Mach -O Linker(Id)警告是相同的

xcode linker unity-game-engine ios cocoapods

18
推荐指数
3
解决办法
4万
查看次数

如何制作bezier连续或不连续的单个锚点

我正在使用以下代码创建贝塞尔曲线.通过在场景视图中移动单击,可以扩展曲线以连接多个贝塞尔曲线.我的代码具有使整个曲线连续或不连续的功能.我意识到我需要使个别点(特别是锚点)具有此功能.

我认为最理想的方法是为具有此功能的点创建一个新类(使点连续或不连续),因为这可以用于添加可能特定于点的其他属性.怎么办呢?

路径

[System.Serializable]
public class Path {

[SerializeField, HideInInspector]
List<Vector2> points;

[SerializeField, HideInInspector]
public bool isContinuous;

public Path(Vector2 centre)
{
    points = new List<Vector2>
    {
        centre+Vector2.left,
        centre+(Vector2.left+Vector2.up)*.5f,
        centre + (Vector2.right+Vector2.down)*.5f,
        centre + Vector2.right
    };
}

public Vector2 this[int i]
{
    get
    {
        return points[i];
    }
}

public int NumPoints
{
    get
    {
        return points.Count;
    }
}

public int NumSegments
{
    get
    {
        return (points.Count - 4) / 3 + 1;
    }
}

public void AddSegment(Vector2 anchorPos)
{
    points.Add(points[points.Count - …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine unity3d-editor

18
推荐指数
1
解决办法
938
查看次数