【发布时间】:2017-05-30 03:29:55
【问题描述】:
我正在开发一个 2D 游戏,并使用 C# 脚本创建了一个游戏对象,如下所示。我还将我的相机设置为正交,并根据屏幕的宽度调整了我的精灵。无论我设置的位置如何,对象始终位于屏幕的中心。我该如何解决这个问题?
using UnityEngine;
using System.Collections;
public class TestingPositions : MonoBehaviour {
GameObject hero;
Sprite heroSprite;
Vector3 heroPosition;
// Use this for initialization
void Start () {
hero = new GameObject ();
Instantiate (hero, heroPosition, Quaternion.identity);
Camera camera = GameObject.FindGameObjectWithTag ("MainCamera").GetComponent<Camera> ();
heroPosition = camera.ScreenToWorldPoint(new Vector3(Screen.width/4, Screen.height/4, camera.nearClipPlane));
heroSprite = Resources.Load <Sprite> ("Sprites/heroImage");
SpriteRenderer renderer = hero.AddComponent<SpriteRenderer>(); renderer.sprite = heroSprite;
}
}
【问题讨论】:
-
在
Instantiate中使用后设置heroPosition,并将其设置为Screen.width/2和Screen.height/2。那个代码很乱。另外,你为什么不为你的角色创建一个预制件,而不是从头开始创建整个游戏对象? -
如何使用预制件为我的游戏对象实现上述位置?