我的项目有多个sprite位于Assets\Sprites中,我想用C#脚本加载它.
我测试了这个:
Sprite myFruit = Resources.Load <Sprite> ("Graphics_3");
Run Code Online (Sandbox Code Playgroud)
但myFruit仍然是空的.
我编写了自定义布局所需的自定义内容装配工.所以,RectTransform.sizeDelta当锚点不相同时我需要控制属性,但我不能得到它显示这个值.
我不需要Unity3D API参考,我读它并且没有任何内容因为它只是说:
此RectTransform的大小相对于锚点之间的距离.如果锚在一起,sizeDelta与大小相同.如果锚点位于父级的四个角中的每一个中,则sizeDelta是矩形与其父级相比的大小.
任何人都可以用正常语言解释这是什么意思?当锚点不相同时,如何手动计算?
我真的很想使用Unity3d开发应用程序.我喜欢这样一个事实:我可以开发一次并将应用程序移植到多个平台(Mac/Windows/iPhone/Android),而我的Mac上的性能似乎相当不错.
这将是我第一次为iPhone编写应用程序,我对未来的性能问题感到好奇.我想我肯定会在iPhone上使用Unity3d作为原型,但我想知道构建iPhone Unity3d应用程序是否会像使用Objective-C编写的本机应用程序一样有效地使用iPhone资源.
Unity3d网站似乎表明Unity3d算法已经过优化,我认为如果我在Unity3d论坛中提出这个问题,那将是我得到的那种回应.理想情况下,我有兴趣听取在Unity3d和Objective-C中构建应用程序的人的意见,并可以比较两者.
让我想到这一点的讨论是Andrew和Peter Mortensen对iOS开发成本问题的回答,该问题开始于"开发iPhone应用程序比学习Cocoa更容易".
我试图删除单击鼠标的对象.我正在使用新的Unity3D 4.3进行2D游戏.这是我正在使用的代码
void Update () {
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit))
{
isHit = false;
Destroy(GameObject.Find(hit.collider.gameObject.name));
}
}
}
Run Code Online (Sandbox Code Playgroud)
控件未进入内部if循环.(isHit未被设置为false).
我是团结的新手,目前正在尝试制作局域网多人RPG游戏.
仅供参考,我遵循了官方统一局的多人游戏指南,一切顺利. https://unity3d.com/learn/tutorials/topics/multiplayer-networking/introduction-simple-multiplayer-example
到目前为止,我让玩家加载,他们能够移动.我在下面编写了以下代码(在虚拟更新例程下),这样当玩家移动时,它将每1秒随机化1到50之间的数字,如果数字是25,我们随机"遇到敌人".当任何玩家遇到一个敌人时我都会这样做,所以网络上的每个人都会进入"战斗场景".
if (Input.GetKey("up") || Input.GetKey("down") || Input.GetKey("left") || Input.GetKey("right"))
{
if (Time.time > NextActionTime)
{
NextActionTime = Time.time + Period;
EnemyEncounter = Random.Range(1, 50);
if (EnemyEncounter == 25)
{
NetworkManager.singleton.ServerChangeScene("Scene2");
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,但我不确定如何加载每个人,只加载某些玩家进入战斗场景.
例如:
玩家在主持/寻找局域网游戏之前输入一个名称
玩家1 = Joe
Player 2 = Bob
Player 3 = Billy
Player 4 = Jim
在预设的标签/文本上加载其中的文字"Joe,Billy".现在,当任何玩家发现遭遇时,我只想将玩家名称"Joe"和"Billy"加载到下一个场景,而其他玩家则不会.
这可能吗?任何形式的帮助将不胜感激.
谢谢大家
我正在尝试从Unity平台上的Windows Phone 8上发布帖子请求.我不想使用统一WWW方法,因为这会阻止渲染(并且不是线程安全的).
以下代码适用于编辑器和Android,但在为WP8构建时,我收到以下错误.
System.Byte [] System.Net.WebClient :: UploadData(System.String,System.String,System.Byte [])`在目标框架中不存在.
此处解释了此错误的原因
这是因为Windows Phone 8使用了一种名为.NET for Windows Phone的不同版本的.NET,它缺少其他平台上可用的某些类型.您必须用不同的类型替换这些类型或自己实现它们.- http://docs.unity3d.com/Manual/wp8-faq.html
这是我的代码
using (WebClient client = new WebClient())
{
client.Encoding = System.Text.Encoding.UTF8;
client.Headers[HttpRequestHeader.ContentType] = "application/json";
byte[] requestData = new byte[0];
string jsonRequest = "{}";
if (data != null)
{
string tempRequest = Converter.SerializeToString (data);
jsonRequest = "{\"Data\": \"" + tempRequest + "\"}";
requestData = System.Text.Encoding.UTF8.GetBytes(jsonRequest);
}
// below line of code is the culprit
byte[] returnedData = client.UploadData(url, "POST", requestData);
if(returnedData.Length > 0) …Run Code Online (Sandbox Code Playgroud) 这有点困难,因为我甚至不知道我的C++是否得到了很好的实现.
我想从Unity3D调用一个函数,我传递一些参数float *points,我的C++写入该指针.
好吧,从C++部分开始,我写道:
main_function.cpp 这是我在C++中的主要功能,例如,它可以完美地用作二进制文件.
#include "main_function.h"
extern "C" void getPoints (uchar *data, float *points, int rows, int cols, const char *trackername) {
//load detector model
face_tracker tracker = load_ft<face_tracker>(trackername);
//create tracker parameters
face_tracker_params p; p.robust = false;
p.ssize.resize(3);
p.ssize[0] = Size(21,21);
p.ssize[1] = Size(11,11);
p.ssize[2] = Size(5,5);
Mat im = Mat(Size(cols, rows), CV_8U, data);
if(tracker.track(im,p))
tracker.draw(im, points);
}
Run Code Online (Sandbox Code Playgroud)
main_function.h
#include "opencv_hotshots/ft/ft.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
extern "C" {
void getPoints (uchar *data, float *points, int rows, …Run Code Online (Sandbox Code Playgroud) 如何使标签中的字体大小变大?
我用这个函数来显示文字:
function OnGUI()
{
GUI.color = Color.green;
GUI.Label(Rect(500,350,200,50),"Lose");
}
Run Code Online (Sandbox Code Playgroud)
这导致:
如何让这个文字更大?
我想知道如何在线框中查看和渲染特定的游戏对象(网格),而不是整个场景.我可以将场景更改为线框使用,GL.wireframe但我想要查看的问题并且只渲染线框中的某个对象(不是整个场景).有什么建议吗?
我的工作是编写一个代码,在运行时将.OBJ加载到Unity中.Unity在其维基页面中提供了示例代码.我使用以下代码来使用链接中给出的类:
public class Main : MonoBehaviour {
// Use this for initialization
void Start () {
Mesh holderMesh = new Mesh ();
ObjImporter newMesh = new ObjImporter();
holderMesh = newMesh.ImportFile("C:/Users/cvpa2/Desktop/ng/output.obj");
}
Run Code Online (Sandbox Code Playgroud)
我在Unity Monodevelop中没有收到任何错误,但模型也没有加载.可能的解决方案是什么?
unityscript ×10
c# ×3
c++ ×1
ios ×1
objective-c ×1
performance ×1
unet ×1
unity3d-ui ×1
unity3d-unet ×1