小编tin*_*han的帖子

实例化的预制秤在客户端上无法正确显示

我有一个由动画预制件代表的爆炸.当用户单击UI按钮时,实例化预制件.在客户端或主机上单击按钮时,预制件将设置为Vector3(0.1,0.1,1)的localscale,并在主机上正确显示,但在客户端上以原始比例显示.

我有一个文本框显示客户端和主机上的比例,它们相匹配,但预制件的显示在主机(显示正确)和客户端(显示不正确)上是不同的.同样,客户端用户可以单击按钮或主机可以单击按钮,在这两种情况下,主机上的显示都是正确的,但客户端上的显示是正确的.

任何猜测,为什么我不能让客户端正确显示.似乎客户端上可以获得0.1,0.1,1的localscale,因为我可以在文本框中显示它,但是预制件显示得更大.

这是实例化代码.让我知道有助于诊断的任何其他信息.

go = Instantiate(shockwave, this.transform, false);
NetworkServer.Spawn(go);
Run Code Online (Sandbox Code Playgroud)

UPDATE

这是我根据Lotan的评论更新的代码.请注意,我首先调用createshockwave,然后调用Cmdcreateshockwave,因为我无法从UI按钮调用Command.

public void createshockwave()
{
    if(!isLocalPlayer)
    { return; }

    Cmdcreateshockwave();
}

[Command]
public void Cmdcreateshockwave()
{

    //note that this line parents shockwave. The updated instantiation code below does not parent shockwave.
    //go = Instantiate(shockwave, this.transform, false);

    GameObject go = Instantiate(shockwave, this.transform.position, Quaternion.identity) as GameObject;

    NetworkServer.Spawn(go);

    go.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
...
}
Run Code Online (Sandbox Code Playgroud)

现在,实例化预制件的大小在客户端和主机上都是相同的原始比例.将区域设置比例更改为其他大小没有任何影响.

更新此问题似乎与预制件上的动画师有关.我删除了缩放预制件的动画师,现在缩放比例与客户端和主机上的父级匹配.看起来我不得不在更新功能中手动增加localscale而不是使用动画师.

c# unity-game-engine unity3d-unet

8
推荐指数
1
解决办法
189
查看次数

实例化的预制件丢失了脚本引用

我的预制件不会保留移动操纵杆参考.如果我在运行时添加引用,则一切正常,但实例化的预制件将在我从屏幕上删除它或运行项目后丢失引用.

我肯定会在预制件上点击Apply,但基本上,它表现得好像我没有.

这里添加了参考...

在此输入图像描述

但是去了实例化的对象......

在此输入图像描述

请注意,我拖入场景的船对象仍然具有引用,但实例化的船不具有引用.

我用操纵杆容器作为预制件而不是预制件试过这个.

unity-game-engine

5
推荐指数
1
解决办法
1209
查看次数

比较linq中的日期

我想查询数据库中日期大于或等于给定日期的项目.

db中的日期是日期时间并记录时间.

如果用户输入搜索字符串"1/30/2014",则他们希望返回在该日期的任何时间发生的条目.但是,任何在上午12点之后有时间的东西都不会被退回.

我知道我可以简单地在搜索字符串中添加一天,但是有更合适的方法吗?

if (form["closedend"] != "")
{
     DateTime d = DateTime.Parse(form["closedend"]);
     traces = traces.Where(s => s.date_Closed >= d);
}
Run Code Online (Sandbox Code Playgroud)

html c# linq forms linq-to-entities

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

如何将OrderBy应用于Linq查询以获取选择列表

我一定错过了一些明显的东西.此查询中的orderby cluase对我的选择列表中显示的项目的顺序没有影响...

List<String> reps = (from r in db.bookings
                     where !r.bookingRep1.Contains("*") && !r.bookingRep1.Contains(" ")
                     orderby r.bookingRep1
                     select r.bookingRep1).Distinct().ToList();

ViewBag.rep1 = new SelectList(reps, booking.bookingRep1);
Run Code Online (Sandbox Code Playgroud)

选择清单......

@Html.DropDownListFor(model => model.bookings.bookingRep1, (SelectList)ViewBag.rep1, "")
Run Code Online (Sandbox Code Playgroud)

我希望selectrep1按字母顺序排序选择列表

linq asp.net-mvc entity-framework razor

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

ToShortDateString显示空字符串

tentative_date具有有效日期,但是当我尝试转换为时shortdate,将显示一个空字符串。

@if (Model.bookings.tentative_date.HasValue) {    
    Model.bookings.tentative_date.Value.ToShortDateString();
}
Run Code Online (Sandbox Code Playgroud)

关于我在做什么错的任何想法吗?

c# asp.net-mvc entity-framework razor

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

从字符串转换日期和/或时间时转换失败

我正在努力解决这个返回错误的查询:从字符串转换日期和/或时间时转换失败.

从我的谷歌搜索来看,这是一个常见的错误,但到目前为止我没有尝试过.我已经尝试将@startdate转换为datetime和varchar而不管它,如下例所示.

我也尝试使用convert对fieldname和参数名称,虽然不可否认,我可能只是得到了错误的语法.

ALTER PROCEDURE [dbo].[customFormReport]
(
    @formid int,
    @startdate DATETIME
)
AS
BEGIN
SET NOCOUNT ON

DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX)

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(fieldname) from FormResponse WHERE FormID = @formid AND value IS NOT NULL FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT FormID, FormSubmissionID,' + @cols + ' from 
             (
                SELECT FormID, FormSubmissionID, fieldname, value
                FROM FormResponse WHERE FormID = ' + CAST(@formid AS VARCHAR(25)) + ' AND createDate …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

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

在lambda表达式中使用通配符的null-coalescing运算符

我有一个包含多个输入的搜索表单 - 名字,姓氏,公司......

我想根据用户输入返回实体,或者如果没有输入任何内容,例如在姓氏字段中,则返回所有姓氏.

我相信我应该为此使用null-coalescing,就像t-sql中的"ISNULL"...

contacts = contacts.Where(s => s.firstname.ToUpper().Contains(fNameSearch.ToUpper() ?? *)
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何在这种类型的预测中使用通配符.

例如,如果fNameSearch为null或white-space,则返回firstname属性中包含"test"的所有内容...

 contacts = contacts.Where(s => s.firstname.ToUpper().Contains(fNameSearch.ToUpper() ?? "test")
Run Code Online (Sandbox Code Playgroud)

但我希望能够归还所有东西,而不仅仅是"测试".

c# linq-to-entities entity-framework

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

tsql的问题不在查询中

我正在尝试查找表1列A中的值不在表2列A中的行

这是查询......

SELECT contactsid
FROM contacts
WHERE (email1 NOT IN (SELECT email
                      FROM old_contact))
Run Code Online (Sandbox Code Playgroud)

它返回0行,我知道这是不正确的.有许多行contacts.email1不在old_contact.email

我该怎么写这个查询?

sql t-sql sql-server

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