标签: unity-game-engine

Unity 4.3 - 了解位置和屏幕分辨率,如何正确设置对象的位置?

在2d模式下使用Unity 4.3我有一个GameObject,它是一个精灵(在我设置精灵的SpriteRenderer中),我试图将它放在屏幕的左上角.

我想让这个精灵位于每个分辨率的左上角(例如)(我有iOS作为构建目标,所以在我的情况下我说的是iPhone的所有分辨率,视网膜,非视网膜,iPad等) .

我缺少的是坐标系统是如何工作的,我习惯于使用坐标系中的像素,其中0,0从左下角或左上角开始.

在Unity 4.3中,似乎0,0位于中心(这显然不是一个大问题)但是让我感到困惑的是,如果我打印我的对象的宽度(128px),我得到一个1.06作为值,并且屏幕被细分为"点"我想,所以左边是-3而右边是+3

所以问题是:为什么我的精灵宽度是1.06?我该如何在这个系统中完美地定位东西?

想象一下,我想在正左上方放置一个128px*128px的正方形,我该怎么办呢?

c# unity-game-engine

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

在Unity iOS上发出HTTP请求的方法?

我需要使用所有标准RESTful方法发送HTTP请求并访问请求正文以便使用它发送/接收JSON.我调查过,

WebRequest.HttpWebRequest

这几乎是完美的,但有些情况下,例如,如果服务器关闭,函数GetResponse可能需要几秒钟才能返回 - 因为它是一个同步方法 - 冻结该时段的应用程序.这个方法的异步版本,BeginGetResponse,似乎不是异步工作(在Unity中),因为它仍然冻结该时期的应用程序.

UnityEngine.WWW#

由于某些原因,只支持POST和GET请求 - 但我还需要PUT和DELETE(标准的RESTful方法),所以我没有进一步深入研究它.

的System.Threading

为了运行WebRequest.HttpWebRequest.GetResponse而不冻结应用程序,我研究了使用线程.线程似乎在编辑器中工作(但看起来非常不稳定 - 如果你在应用程序退出时不停止线程,即使你停止它也会永远在编辑器中运行),并且当构建到iOS设备时它会立即崩溃因为我尝试启动一个线程(我忘记写下错误,我现在无法访问它).

在本机iOS应用程序中运行线程,并使用Unity应用程序的桥接器

荒谬,甚至不会尝试这个.

UniWeb

这个.我想知道他们是如何管理它的.

这是我正在尝试的WebRequest.BeginGetResponse方法的示例,

// The RequestState class passes data across async calls.
public class RequestState
{
   const int BufferSize = 1024;
   public StringBuilder RequestData;
   public byte[] BufferRead;
   public WebRequest Request;
   public Stream ResponseStream;
   // Create Decoder for appropriate enconding type.
   public Decoder StreamDecode = Encoding.UTF8.GetDecoder();

   public RequestState()
   {
      BufferRead = new byte[BufferSize];
      RequestData = new StringBuilder(String.Empty);
      Request = null;
      ResponseStream = null;
   } …
Run Code Online (Sandbox Code Playgroud)

c# multithreading http unity-game-engine ios

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

Unity中的回调监听器 - 如何从Android中的UnityPlayerActivity调用脚本文件方法

我有一个android库项目并在Unity项目中导入了库项目.现在,我想在Unity项目中实现一个回调,它将根据android库项目给出的响应执行.我的意思是说,来自UnityPlayerActivity(Android Project)的Call Script File方法.

目前我使用下面的代码行但没有任何反应:

UnityPlayer.UnitySendMessage("Main Camera","showMessage",errorMessage);
Run Code Online (Sandbox Code Playgroud)

Main Camera是我的游戏对象.showMessage是脚本文件中的消息名称. Message是通过Android Activity在Unity中显示的消息.

请检查我的下面代码Unity Script File和Android Activity.

Unity脚本文件:

using UnityEngine;
using System.Collections;

public class scriptfile : MonoBehaviour {

    // Use this for initialization
    void Start () {


        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); 
        AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); 
        jo.Call("shareText","236","236");
    }

    void showMessage(string message){
        print ("hello");
        Debug.Log ("hello");
    } 
}
Run Code Online (Sandbox Code Playgroud)

Android文件UnityPlayerActivity:

/**
 * Created by CH-E01073 on 28-09-2015.
 */
public class MainAct extends UnityPlayerActivity implements RegistrationListener,BOffersListener {
    Context context;
    SharedPreferences prefs …
Run Code Online (Sandbox Code Playgroud)

c# java java-native-interface android unity-game-engine

20
推荐指数
2
解决办法
9182
查看次数

XCode返回链接器错误"找不到-lFirebaseAuth的库"

我想在Unity上测试firebase初始应用程序.我在MacOS和xcode项目文件夹中使用Unity构建了一个版本,我已经成功运行了pod命令.

pod安装

在此之后我打开了xcode项目,然后点击构建按钮.在此之前,我发现框架未找到错误.我修好了,现在我得到了

ld: warning: directory not found for option '-L/Users/ali/Library/Developer/Xcode/DerivedData/Unity-iPhone-giljorflztrrychfchrkhcfbqtbh/Build/Products/ReleaseForRunning-iphoneos/FirebaseAuth'
ld: warning: directory not found for option '-L/Users/ali/Library/Developer/Xcode/DerivedData/Unity-iPhone-giljorflztrrychfchrkhcfbqtbh/Build/Products/ReleaseForRunning-iphoneos/FirebaseCore'
ld: warning: directory not found for option '-L/Users/aliavci/Library/Developer/Xcode/DerivedData/Unity-iPhone-giljorflztrrychfchrkhcfbqtbh/Build/Products/ReleaseForRunning-iphoneos/GTMSessionFetcher'
ld: warning: directory not found for option '-L/Users/ali[![enter image description here][1]][1]/Library/Developer/Xcode/DerivedData/Unity-iPhone-giljorflztrrychfchrkhcfbqtbh/Build/Products/ReleaseForRunning-iphoneos/GoogleToolboxForMac'
ld: warning: directory not found for option '-L/Users/ali/Library/Developer/Xcode/DerivedData/Unity-iPhone-giljorflztrrychfchrkhcfbqtbh/Build/Products/ReleaseForRunning-iphoneos/nanopb'
ld: library not found for -lFirebaseAuth
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我已经将库补丁添加到库搜索路径中.我添加了一些截图作为附件.

xcode属性

podfile

xcode linker unity-game-engine ios firebase

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

什么是Android Bundle版本和版本代码以及它们如何相关?

a)Android软件包版本和版本代码表示什么?

b)捆绑版本和版本代码之间有什么区别?

i)假设我有一个捆绑版本0.137,版本代码与此有何关系?版本代码可以是137吗?

ii)当我1.0下次发布捆绑版本时会发生什么?我可以调用版本代码10吗?

c)它们如何相关?对捆绑版本进行编号的正确方法是什么?


NB在搜索中似乎没有一个解释差异的来源.到目前为止,我一直非常偶然地编写我的捆绑包,但我想知道如何做到这一点.

这些名称似乎特定于Unity,但我不确定我是否理解参数甚至是从该页面的内容...

android version unity-game-engine android-version google-play

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

在Unity中,如何将值从一个脚本传递到另一个脚本?

在Unity中,我希望一个对象具有一个所有其他对象都可以访问的下降速度变量.出于各种原因,我无法使用内置引力来实现我的目标.

如何重复访问一个对象中的变量,以便在更新时从另一个对象获取更新的变量?

c# unity-game-engine

19
推荐指数
2
解决办法
7万
查看次数

我可以使用设备的相机在Unity中拍照吗?

我完全不熟悉Unity3D更复杂的功能集,如果它有能力拍照然后操纵它,我很好奇.具体来说,我的愿望是让用户自拍,然后让他们在他们的脸上追踪以创建一个PNG,然后将纹理映射到模型上.

我知道将面部映射到模型上很简单,但我想知道是否需要将照片/雕刻功能写入包含在内的Chrome应用程序中,或者是否可以在Unity中完成.我不需要有关如何做到这一点的教程,只是询问它是否可能.

photo unity-game-engine

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

在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万
查看次数

Unity3D项目在模拟器中打开,但不在手机上打开

您好我正在尝试从Android打开一个嵌入式Unity 3D项目但是当我尝试在实际手机(Google Pixel XL)上运行时,似乎该项目将打开但立即关闭并返回到Android应用程序.当我在模拟器(同一部手机)中打开应用程序时,Unity 3d项目打开正常.我的堆栈跟踪中列出了几个错误,并且在我尝试运行应用程序时附加了完整的logcat.从搜索这些错误,我发现没有具体解决这个问题.如果有人有任何建议,请告诉我.我的代码可以在以下链接中找到

https://drive.google.com/drive/folders/167mCvox1d564VUw4EsNbDn_ir2jP3QrZ?usp=sharing

更新:我试图在较旧的手机上打开Unity 3D项目,它打开完美.是否有额外的权限或Pixel需要包含的任何内容?

更新:我运行了一个内存配置文件,但不确定如何解释它.我的输出显示如下:

记忆档案

手机截图 模拟器

logcat的:

05-08 10:10:17.967 14966-14987/? I/Adreno: PFP: 0x005ff087, ME: 0x005ff063
05-08 10:10:17.972 14966-14987/? I/zygote: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
05-08 10:10:17.973 14966-14987/? I/OpenGLRenderer: Initialized EGL, version 1.4
05-08 10:10:17.973 14966-14987/? D/OpenGLRenderer: Swap behavior 2
05-08 10:10:22.204 14966-15162/com.example.kshah.unityvrtest I/Unity: SystemInfo CPU = ARMv7 VFPv3 NEON, Cores = 4, Memory = 3753mb
    SystemInfo ARM big.LITTLE configuration: 2 big (mask: 12), 2 little (mask: 3)
05-08 10:10:22.205 14966-15162/com.example.kshah.unityvrtest I/Unity: ApplicationInfo com.example.kshah.unityvrtest version 1.0 build c35f44f5-89ae-4e59-bedb-0c7f4e71bee4
05-08 10:10:22.211 …
Run Code Online (Sandbox Code Playgroud)

android unity-game-engine

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

如何使用自定义编辑器移动另一个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
查看次数