嗯,这是问题,
实际上我试图实现的是在一些基本的三个例子中放置一些聚光灯。
以下是我尝试设置聚光灯目标位置的方法:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld()
{
// getting connection string
string conStr = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["DbConection"].ConnectionString;
using (SqlConnection conn = new SqlConnection(conStr))
{
DataTable dt = new DataTable();
SqlCommand cmd = new SqlCommand("select Id from customer", conn);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
System.Web.Script.Serialization.JavaScriptSerializer serilizer = new System.Web.Script.Serialization.JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach(DataRow dr in dt.Rows)
{
row = new Dictionary<string, object>();
foreach(DataColumn col in dt.Columns)
{
row.Add(col.ColumnName,dr[col]);
}
rows.Add(row);
}
return serilizer.Serialize(rows);
}
聚光灯(灯光)一直点亮点(0,0,0),即使我在console.log中找到了target.position。(x,y,z)它给了我正确的值...
这是我用完整的例子做的一个快速小提琴。
答案 0 :(得分:5)
您必须在更改后更新light.target
(例如设置位置):
light.target.updateMatrixWorld();
或者只是将light.target
添加到场景中:
scene.add( light.target );
Three.js r.71